RE: functions/procedures and commits

2003-01-06 Thread Sinardy Xing
Hi John Dunn,

My answer is never commit, Oracle will rollback.

Are you consider auto commit an implicitly commitment?


Sinardy

-Original Message-
Sent: 02 January 2003 22:14
To: Multiple recipients of list ORACLE-L



 Under what circumstances is a COMMIT done implicitly?
 
 If I call a function or procedure that performs an insert, but does not do
 a commit, will a commit be implicitly performed when the function ends?
 
 i.e. is ...
 
 begin

  INSERT INTO
  ... etc.
 
 end;
 
 the same as 
 
 begin
 
 insert_the_record;
 
 end;
 
 where insert_the_record  is a procedure that does the insert, but nothing
 else.
-- 
Please see the official ORACLE-L FAQ: http://www.orafaq.net
-- 
Author: John Dunn
  INET: [EMAIL PROTECTED]

Fat City Network Services-- 858-538-5051 http://www.fatcity.com
San Diego, California-- Mailing list and web hosting services
-
To REMOVE yourself from this mailing list, send an E-Mail message
to: [EMAIL PROTECTED] (note EXACT spelling of 'ListGuru') and in
the message BODY, include a line containing: UNSUB ORACLE-L
(or the name of mailing list you want to be removed from).  You may
also send the HELP command for other information (like subscribing).

-- 
Please see the official ORACLE-L FAQ: http://www.orafaq.net
-- 
Author: Sinardy Xing
  INET: [EMAIL PROTECTED]

Fat City Network Services-- 858-538-5051 http://www.fatcity.com
San Diego, California-- Mailing list and web hosting services
-
To REMOVE yourself from this mailing list, send an E-Mail message
to: [EMAIL PROTECTED] (note EXACT spelling of 'ListGuru') and in
the message BODY, include a line containing: UNSUB ORACLE-L
(or the name of mailing list you want to be removed from).  You may
also send the HELP command for other information (like subscribing).




Re: functions/procedures and commits

2003-01-02 Thread Rachel Carmichael
if I recall correctly, implicit commits are done

a) on a clean exit from sqlplus
b) on a clean exit from a stored program
c) if you do a DDL statement after the DML statement

but this is from memory and without checking manuals.


--- John Dunn [EMAIL PROTECTED] wrote:
 
  Under what circumstances is a COMMIT done implicitly?
  
  If I call a function or procedure that performs an insert, but does
 not do
  a commit, will a commit be implicitly performed when the function
 ends?
  
  i.e. is ...
  
  begin
 
   INSERT INTO
   ... etc.
  
  end;
  
  the same as 
  
  begin
  
  insert_the_record;
  
  end;
  
  where insert_the_record  is a procedure that does the insert, but
 nothing
  else.
 -- 
 Please see the official ORACLE-L FAQ: http://www.orafaq.net
 -- 
 Author: John Dunn
   INET: [EMAIL PROTECTED]
 
 Fat City Network Services-- 858-538-5051 http://www.fatcity.com
 San Diego, California-- Mailing list and web hosting services
 -
 To REMOVE yourself from this mailing list, send an E-Mail message
 to: [EMAIL PROTECTED] (note EXACT spelling of 'ListGuru') and in
 the message BODY, include a line containing: UNSUB ORACLE-L
 (or the name of mailing list you want to be removed from).  You may
 also send the HELP command for other information (like subscribing).
 


__
Do you Yahoo!?
Yahoo! Mail Plus - Powerful. Affordable. Sign up now.
http://mailplus.yahoo.com
-- 
Please see the official ORACLE-L FAQ: http://www.orafaq.net
-- 
Author: Rachel Carmichael
  INET: [EMAIL PROTECTED]

Fat City Network Services-- 858-538-5051 http://www.fatcity.com
San Diego, California-- Mailing list and web hosting services
-
To REMOVE yourself from this mailing list, send an E-Mail message
to: [EMAIL PROTECTED] (note EXACT spelling of 'ListGuru') and in
the message BODY, include a line containing: UNSUB ORACLE-L
(or the name of mailing list you want to be removed from).  You may
also send the HELP command for other information (like subscribing).




RE: functions/procedures and commits

2003-01-02 Thread Jamadagni, Rajendra
Title: RE: functions/procedures and commits





No ...


an implicit commit is performed 
1. If you perform any DDL statement
2. If SQLPLUS you exit without issuing an explicit ROLLBACK.


Otherwise, your transaction will remain open awaiting for an explicit commit or rollback.


Raj
__
Rajendra Jamadagni  MIS, ESPN Inc.
Rajendra dot Jamadagni at ESPN dot com
Any opinion expressed here is personal and doesn't reflect that of ESPN Inc. 
QOTD: Any clod can have facts, but having an opinion is an art!



-Original Message-
From: John Dunn [mailto:[EMAIL PROTECTED]]
Sent: Thursday, January 02, 2003 9:14 AM
To: Multiple recipients of list ORACLE-L
Subject: functions/procedures and commits




 Under what circumstances is a COMMIT done implicitly?
 
 If I call a function or procedure that performs an insert, but does not do
 a commit, will a commit be implicitly performed when the function ends?
 
 i.e. is ...
 
 begin
 
 INSERT INTO
 ... etc.
 
 end;
 
 the same as 
 
 begin
 
 insert_the_record;
 
 end;
 
 where insert_the_record is a procedure that does the insert, but nothing
 else.
-- 
Please see the official ORACLE-L FAQ: http://www.orafaq.net
-- 
Author: John Dunn
 INET: [EMAIL PROTECTED]


Fat City Network Services -- 858-538-5051 http://www.fatcity.com
San Diego, California -- Mailing list and web hosting services
-
To REMOVE yourself from this mailing list, send an E-Mail message
to: [EMAIL PROTECTED] (note EXACT spelling of 'ListGuru') and in
the message BODY, include a line containing: UNSUB ORACLE-L
(or the name of mailing list you want to be removed from). You may
also send the HELP command for other information (like subscribing).



*This e-mail 
message is confidential, intended only for the named recipient(s) above and may 
contain information that is privileged, attorney work product or exempt from 
disclosure under applicable law. If you have received this message in error, or are 
not the named recipient(s), please immediately notify corporate MIS at (860) 766-2000 
and delete this e-mail message from your computer, Thank 
you.*1



RE: functions/procedures and commits

2003-01-02 Thread Mercadante, Thomas F
John,

there is no such thing as an implicit commit within Oracle.

the only implicit commit that I know of is during a sqlplus session when you
exit the program.  even this is settable by a sqlplus option.

distributed transactions that are controlled by a transaction coordinator
(like MS DTC) might issue commits only because the web application requires
all updates to be handled by the app-server.  but this is different from
what you are asking, I think.

Tom Mercadante
Oracle Certified Professional


-Original Message-
Sent: Thursday, January 02, 2003 9:14 AM
To: Multiple recipients of list ORACLE-L



 Under what circumstances is a COMMIT done implicitly?
 
 If I call a function or procedure that performs an insert, but does not do
 a commit, will a commit be implicitly performed when the function ends?
 
 i.e. is ...
 
 begin

  INSERT INTO
  ... etc.
 
 end;
 
 the same as 
 
 begin
 
 insert_the_record;
 
 end;
 
 where insert_the_record  is a procedure that does the insert, but nothing
 else.
-- 
Please see the official ORACLE-L FAQ: http://www.orafaq.net
-- 
Author: John Dunn
  INET: [EMAIL PROTECTED]

Fat City Network Services-- 858-538-5051 http://www.fatcity.com
San Diego, California-- Mailing list and web hosting services
-
To REMOVE yourself from this mailing list, send an E-Mail message
to: [EMAIL PROTECTED] (note EXACT spelling of 'ListGuru') and in
the message BODY, include a line containing: UNSUB ORACLE-L
(or the name of mailing list you want to be removed from).  You may
also send the HELP command for other information (like subscribing).
-- 
Please see the official ORACLE-L FAQ: http://www.orafaq.net
-- 
Author: Mercadante, Thomas F
  INET: [EMAIL PROTECTED]

Fat City Network Services-- 858-538-5051 http://www.fatcity.com
San Diego, California-- Mailing list and web hosting services
-
To REMOVE yourself from this mailing list, send an E-Mail message
to: [EMAIL PROTECTED] (note EXACT spelling of 'ListGuru') and in
the message BODY, include a line containing: UNSUB ORACLE-L
(or the name of mailing list you want to be removed from).  You may
also send the HELP command for other information (like subscribing).




RE: functions/procedures and commits

2003-01-02 Thread John Weatherman
Title: Message



Or if 
you set autocommit, in which case a commit is issued every X number of 
operations.
John P WeathermanOracle Database 
AdministratorReplacements, Ltd.

  
  -Original Message-From: Jamadagni, 
  Rajendra [mailto:[EMAIL PROTECTED]] Sent: Thursday, 
  January 02, 2003 9:29 AMTo: Multiple recipients of list 
  ORACLE-LSubject: RE: functions/procedures and 
  commits
  No ... 
  an implicit commit is performed 1. If 
  you perform any DDL statement 2. If SQLPLUS you exit 
  without issuing an explicit ROLLBACK. 
  Otherwise, your transaction will remain open awaiting for an 
  explicit commit or rollback. 
  Raj __ Rajendra Jamadagni 
   MIS, ESPN Inc. Rajendra dot Jamadagni at ESPN dot com Any 
  opinion expressed here is personal and doesn't reflect that of ESPN Inc. 
  QOTD: Any clod can have facts, but having an opinion 
  is an art! 
  -Original Message- From: John 
  Dunn [mailto:[EMAIL PROTECTED]] 
  Sent: Thursday, January 02, 2003 9:14 AM To: Multiple recipients of list ORACLE-L Subject: functions/procedures and commits 
   Under what circumstances is a COMMIT done 
  implicitly?   If I 
  call a function or procedure that performs an insert, but does not do 
   a commit, will a commit be implicitly performed when the 
  function ends?   i.e. 
  is ...   begin 
INSERT INTO  ... 
  etc.   end; 
the same as 
begin 

  insert_the_record;   
  end;   where 
  insert_the_record is a procedure that does the insert, but 
  nothing  else. -- 
  Please see the official ORACLE-L FAQ: http://www.orafaq.net 
  -- Author: John Dunn  INET: [EMAIL PROTECTED] 
  Fat City Network Services -- 858-538-5051 http://www.fatcity.com 
  San Diego, 
  California -- Mailing list and web 
  hosting services - 
  To REMOVE yourself from this mailing list, send an E-Mail 
  message to: [EMAIL PROTECTED] (note EXACT spelling 
  of 'ListGuru') and in the message BODY, include a line 
  containing: UNSUB ORACLE-L (or the name of mailing 
  list you want to be removed from). You may also 
  send the HELP command for other information (like subscribing). 



RE: functions/procedures and commits

2003-01-02 Thread John Weatherman
Tom,

Oracle issues an implicit commit any time DDL is performed or when a
quit/exit is issued (Complete Ref p285) or after a set number of commands by
using a set autocommit # (Complete Ref 283).  With the latter is arguably
not truly an implicit commit, as you do set it, DDL most certainly is.

FWIW,

John P Weatherman
Oracle Database Administrator
Replacements, Ltd.



-Original Message-
Sent: Thursday, January 02, 2003 10:10 AM
To: Multiple recipients of list ORACLE-L


John,

there is no such thing as an implicit commit within Oracle.

the only implicit commit that I know of is during a sqlplus session when you
exit the program.  even this is settable by a sqlplus option.

distributed transactions that are controlled by a transaction coordinator
(like MS DTC) might issue commits only because the web application requires
all updates to be handled by the app-server.  but this is different from
what you are asking, I think.

Tom Mercadante
Oracle Certified Professional


-Original Message-
Sent: Thursday, January 02, 2003 9:14 AM
To: Multiple recipients of list ORACLE-L



 Under what circumstances is a COMMIT done implicitly?
 
 If I call a function or procedure that performs an insert, but does 
 not do a commit, will a commit be implicitly performed when the 
 function ends?
 
 i.e. is ...
 
 begin

  INSERT INTO
  ... etc.
 
 end;
 
 the same as
 
 begin
 
 insert_the_record;
 
 end;
 
 where insert_the_record  is a procedure that does the insert, but 
 nothing else.
-- 
Please see the official ORACLE-L FAQ: http://www.orafaq.net
-- 
Author: John Dunn
  INET: [EMAIL PROTECTED]

Fat City Network Services-- 858-538-5051 http://www.fatcity.com
San Diego, California-- Mailing list and web hosting services
-
To REMOVE yourself from this mailing list, send an E-Mail message
to: [EMAIL PROTECTED] (note EXACT spelling of 'ListGuru') and in the
message BODY, include a line containing: UNSUB ORACLE-L (or the name of
mailing list you want to be removed from).  You may also send the HELP
command for other information (like subscribing).
-- 
Please see the official ORACLE-L FAQ: http://www.orafaq.net
-- 
Author: Mercadante, Thomas F
  INET: [EMAIL PROTECTED]

Fat City Network Services-- 858-538-5051 http://www.fatcity.com
San Diego, California-- Mailing list and web hosting services
-
To REMOVE yourself from this mailing list, send an E-Mail message
to: [EMAIL PROTECTED] (note EXACT spelling of 'ListGuru') and in the
message BODY, include a line containing: UNSUB ORACLE-L (or the name of
mailing list you want to be removed from).  You may also send the HELP
command for other information (like subscribing).
-- 
Please see the official ORACLE-L FAQ: http://www.orafaq.net
-- 
Author: John Weatherman
  INET: [EMAIL PROTECTED]

Fat City Network Services-- 858-538-5051 http://www.fatcity.com
San Diego, California-- Mailing list and web hosting services
-
To REMOVE yourself from this mailing list, send an E-Mail message
to: [EMAIL PROTECTED] (note EXACT spelling of 'ListGuru') and in
the message BODY, include a line containing: UNSUB ORACLE-L
(or the name of mailing list you want to be removed from).  You may
also send the HELP command for other information (like subscribing).




RE: functions/procedures and commits

2003-01-02 Thread Fink, Dan
Tom,
I must respectfully disagree. Explicit = a COMMIT or ROLLBACK is
explicitly issued by the user/program. Implicit = a COMMIT or ROLLBACK is
performed as the result of an action and not issued by the user/program.
The SQL*Plus options AUTOCOMMIT and COPYCOMMIT do not control EXIT
behavior. For the EXIT/QUIT commands, the default behavior is COMMIT. With
WHENEVER OSERROR or SQLERROR, the behavior can also be altered to perform a
COMMIT or ROLLBACK. Is there another option you are thinking of?
COMMIT or ROLLBACK is tied very closely to TRANSACTIONs. In order to
start a new transaction, the previous transaction must end. A COMMIT
indicates a succesful end, while a ROLLBACK indicates a failure. Please keep
in mind that this is not always coded in this manner, i.e. unhandled
exceptions in PL/SQL followed by COMMIT in calling procs. DDL exists as a
separate transaction. In order to start the DDL transaction, the previous
transaction must end. Oracle terminates the previous transaction by
COMMITting the changes and begins a new tx.
  I used a small anonymous PL/SQL block to test COMMIT/ROLLBACK
behavior. I found it to be consistent with how I left SQL*Plus. If I killed
the window, the change was not committed. If I typed 'EXIT', the change was
committed.

Dan Fink




-Original Message-
Sent: Thursday, January 02, 2003 8:10 AM
To: Multiple recipients of list ORACLE-L


John,

there is no such thing as an implicit commit within Oracle.

the only implicit commit that I know of is during a sqlplus session when you
exit the program.  even this is settable by a sqlplus option.

distributed transactions that are controlled by a transaction coordinator
(like MS DTC) might issue commits only because the web application requires
all updates to be handled by the app-server.  but this is different from
what you are asking, I think.

Tom Mercadante
Oracle Certified Professional


-Original Message-
Sent: Thursday, January 02, 2003 9:14 AM
To: Multiple recipients of list ORACLE-L



 Under what circumstances is a COMMIT done implicitly?
 
 If I call a function or procedure that performs an insert, but does not do
 a commit, will a commit be implicitly performed when the function ends?
 
 i.e. is ...
 
 begin

  INSERT INTO
  ... etc.
 
 end;
 
 the same as 
 
 begin
 
 insert_the_record;
 
 end;
 
 where insert_the_record  is a procedure that does the insert, but nothing
 else.
-- 
Please see the official ORACLE-L FAQ: http://www.orafaq.net
-- 
Author: John Dunn
  INET: [EMAIL PROTECTED]

Fat City Network Services-- 858-538-5051 http://www.fatcity.com
San Diego, California-- Mailing list and web hosting services
-
To REMOVE yourself from this mailing list, send an E-Mail message
to: [EMAIL PROTECTED] (note EXACT spelling of 'ListGuru') and in
the message BODY, include a line containing: UNSUB ORACLE-L
(or the name of mailing list you want to be removed from).  You may
also send the HELP command for other information (like subscribing).
-- 
Please see the official ORACLE-L FAQ: http://www.orafaq.net
-- 
Author: Mercadante, Thomas F
  INET: [EMAIL PROTECTED]

Fat City Network Services-- 858-538-5051 http://www.fatcity.com
San Diego, California-- Mailing list and web hosting services
-
To REMOVE yourself from this mailing list, send an E-Mail message
to: [EMAIL PROTECTED] (note EXACT spelling of 'ListGuru') and in
the message BODY, include a line containing: UNSUB ORACLE-L
(or the name of mailing list you want to be removed from).  You may
also send the HELP command for other information (like subscribing).
-- 
Please see the official ORACLE-L FAQ: http://www.orafaq.net
-- 
Author: Fink, Dan
  INET: [EMAIL PROTECTED]

Fat City Network Services-- 858-538-5051 http://www.fatcity.com
San Diego, California-- Mailing list and web hosting services
-
To REMOVE yourself from this mailing list, send an E-Mail message
to: [EMAIL PROTECTED] (note EXACT spelling of 'ListGuru') and in
the message BODY, include a line containing: UNSUB ORACLE-L
(or the name of mailing list you want to be removed from).  You may
also send the HELP command for other information (like subscribing).




RE: functions/procedures and commits

2003-01-02 Thread Koivu, Lisa
Title: Message



The 
behavior of this may have changed... but I have seen autocommit not work as 
advertised. Just my opinion but I think explicit commits are good 
practice, if nothing else just for ease of reading code. 



Lisa Koivu Oracle Database Administrator Fairfield Resorts, Inc. 5259 Coconut 
Creek Parkway Ft. Lauderdale, FL, USA 
33063 
-Original 
Message-From: John Weatherman 
[mailto:[EMAIL PROTECTED]]Sent: Thursday, January 02, 
2003 10:41 AMTo: Multiple recipients of list 
ORACLE-LSubject: RE: functions/procedures and 
commits

  Or 
  if you set autocommit, in which case a commit is issued every X number of 
  operations.
  John P WeathermanOracle Database 
  AdministratorReplacements, Ltd.
  

-Original Message-From: Jamadagni, 
Rajendra [mailto:[EMAIL PROTECTED]] Sent: Thursday, 
January 02, 2003 9:29 AMTo: Multiple recipients of list 
ORACLE-LSubject: RE: functions/procedures and 
commits
No ... 
an implicit commit is performed 1. 
If you perform any DDL statement 2. If SQLPLUS you 
exit without issuing an explicit ROLLBACK. 
Otherwise, your transaction will remain open awaiting for an 
explicit commit or rollback. 
Raj __ 
Rajendra Jamadagni 
 MIS, ESPN Inc. Rajendra dot Jamadagni at ESPN dot com Any 
opinion expressed here is personal and doesn't reflect that of ESPN Inc. 
QOTD: Any clod can have facts, but having an opinion 
is an art! 
-Original Message- From: 
John Dunn [mailto:[EMAIL PROTECTED]] 
Sent: Thursday, January 02, 2003 9:14 AM To: Multiple recipients of list ORACLE-L Subject: functions/procedures and commits 
 Under what circumstances is a COMMIT done 
implicitly?   If I 
call a function or procedure that performs an insert, but does not do 
 a commit, will a commit be implicitly performed when 
the function ends?   
i.e. is ...   
begin   INSERT INTO  ... 
etc.   end; 
  the same as 
  begin 
  
insert_the_record;   
end;   where 
insert_the_record is a procedure that does the insert, but 
nothing  else. -- 
Please see the official ORACLE-L FAQ: http://www.orafaq.net 
-- Author: John Dunn 
 INET: [EMAIL PROTECTED] 
Fat City Network Services -- 858-538-5051 
http://www.fatcity.com San Diego, 
California -- Mailing list and web 
hosting services - 
To REMOVE yourself from this mailing list, send an E-Mail 
message to: [EMAIL PROTECTED] (note EXACT 
spelling of 'ListGuru') and in the message BODY, 
include a line containing: UNSUB ORACLE-L (or the 
name of mailing list you want to be removed from). You may 
also send the HELP command for other information (like 
subscribing). 


RE: functions/procedures and commits

2003-01-02 Thread Mercadante, Thomas F
Dan,

I agree with you and I think I said the same thing - though not as lengthy!
:)

As you said, the Sql*Plus AutoCommit option controls issuing a commit upon
exiting the program.

As I said in a prior mail, I did not mention DDL forcing an implicit commit
as the question pertained to INSERT statements.

At least I got people answering the question!  :)

Tom Mercadante
Oracle Certified Professional


-Original Message-
Sent: Thursday, January 02, 2003 11:35 AM
To: Multiple recipients of list ORACLE-L


Tom,
I must respectfully disagree. Explicit = a COMMIT or ROLLBACK is
explicitly issued by the user/program. Implicit = a COMMIT or ROLLBACK is
performed as the result of an action and not issued by the user/program.
The SQL*Plus options AUTOCOMMIT and COPYCOMMIT do not control EXIT
behavior. For the EXIT/QUIT commands, the default behavior is COMMIT. With
WHENEVER OSERROR or SQLERROR, the behavior can also be altered to perform a
COMMIT or ROLLBACK. Is there another option you are thinking of?
COMMIT or ROLLBACK is tied very closely to TRANSACTIONs. In order to
start a new transaction, the previous transaction must end. A COMMIT
indicates a succesful end, while a ROLLBACK indicates a failure. Please keep
in mind that this is not always coded in this manner, i.e. unhandled
exceptions in PL/SQL followed by COMMIT in calling procs. DDL exists as a
separate transaction. In order to start the DDL transaction, the previous
transaction must end. Oracle terminates the previous transaction by
COMMITting the changes and begins a new tx.
  I used a small anonymous PL/SQL block to test COMMIT/ROLLBACK
behavior. I found it to be consistent with how I left SQL*Plus. If I killed
the window, the change was not committed. If I typed 'EXIT', the change was
committed.

Dan Fink




-Original Message-
Sent: Thursday, January 02, 2003 8:10 AM
To: Multiple recipients of list ORACLE-L


John,

there is no such thing as an implicit commit within Oracle.

the only implicit commit that I know of is during a sqlplus session when you
exit the program.  even this is settable by a sqlplus option.

distributed transactions that are controlled by a transaction coordinator
(like MS DTC) might issue commits only because the web application requires
all updates to be handled by the app-server.  but this is different from
what you are asking, I think.

Tom Mercadante
Oracle Certified Professional


-Original Message-
Sent: Thursday, January 02, 2003 9:14 AM
To: Multiple recipients of list ORACLE-L



 Under what circumstances is a COMMIT done implicitly?
 
 If I call a function or procedure that performs an insert, but does not do
 a commit, will a commit be implicitly performed when the function ends?
 
 i.e. is ...
 
 begin

  INSERT INTO
  ... etc.
 
 end;
 
 the same as 
 
 begin
 
 insert_the_record;
 
 end;
 
 where insert_the_record  is a procedure that does the insert, but nothing
 else.
-- 
Please see the official ORACLE-L FAQ: http://www.orafaq.net
-- 
Author: John Dunn
  INET: [EMAIL PROTECTED]

Fat City Network Services-- 858-538-5051 http://www.fatcity.com
San Diego, California-- Mailing list and web hosting services
-
To REMOVE yourself from this mailing list, send an E-Mail message
to: [EMAIL PROTECTED] (note EXACT spelling of 'ListGuru') and in
the message BODY, include a line containing: UNSUB ORACLE-L
(or the name of mailing list you want to be removed from).  You may
also send the HELP command for other information (like subscribing).
-- 
Please see the official ORACLE-L FAQ: http://www.orafaq.net
-- 
Author: Mercadante, Thomas F
  INET: [EMAIL PROTECTED]

Fat City Network Services-- 858-538-5051 http://www.fatcity.com
San Diego, California-- Mailing list and web hosting services
-
To REMOVE yourself from this mailing list, send an E-Mail message
to: [EMAIL PROTECTED] (note EXACT spelling of 'ListGuru') and in
the message BODY, include a line containing: UNSUB ORACLE-L
(or the name of mailing list you want to be removed from).  You may
also send the HELP command for other information (like subscribing).
-- 
Please see the official ORACLE-L FAQ: http://www.orafaq.net
-- 
Author: Fink, Dan
  INET: [EMAIL PROTECTED]

Fat City Network Services-- 858-538-5051 http://www.fatcity.com
San Diego, California-- Mailing list and web hosting services
-
To REMOVE yourself from this mailing list, send an E-Mail message
to: [EMAIL PROTECTED] (note EXACT spelling of 'ListGuru') and in
the message BODY, include a line containing: UNSUB ORACLE-L
(or the name of mailing list you want to be removed from).  You may
also send the HELP command for other information (like subscribing).
-- 
Please see the official ORACLE-L FAQ: 

RE: functions/procedures and commits

2003-01-02 Thread Fink, Dan
AUTOCOMMIT controls COMMITs after execution of individual DML statements,
not upon EXITing SQL*Plus.

The point I want to make is that IMPLICIT COMMITs  ROLLBACKs do occur. I
have encountered the following scenario more than once...
'Oracle is not saving changes' is the complaint from the users. In looking
at the code, and having confidence that Oracle does not randomly decide to
not commit (barring a bug that I have yet to encounter, though possible), I
see that the process is performing multiple DML statements. One of the
statements fails, but the error is not trapped, and the program performs a
graceful exit (COMMITting the changes without the command COMMIT being
issued).

I also recall from several years ago, that Forms always issued a ROLLBACK
when leaving the Form. If you did not explicitly code a COMMIT, an IMPLICIT
(to you) ROLLBACK was performed.

Dan Fink

-Original Message-
Sent: Thursday, January 02, 2003 11:24 AM
To: Multiple recipients of list ORACLE-L


Dan,

I agree with you and I think I said the same thing - though not as lengthy!
:)

As you said, the Sql*Plus AutoCommit option controls issuing a commit upon
exiting the program.

As I said in a prior mail, I did not mention DDL forcing an implicit commit
as the question pertained to INSERT statements.

At least I got people answering the question!  :)

Tom Mercadante
Oracle Certified Professional


-Original Message-
Sent: Thursday, January 02, 2003 11:35 AM
To: Multiple recipients of list ORACLE-L


Tom,
I must respectfully disagree. Explicit = a COMMIT or ROLLBACK is
explicitly issued by the user/program. Implicit = a COMMIT or ROLLBACK is
performed as the result of an action and not issued by the user/program.
The SQL*Plus options AUTOCOMMIT and COPYCOMMIT do not control EXIT
behavior. For the EXIT/QUIT commands, the default behavior is COMMIT. With
WHENEVER OSERROR or SQLERROR, the behavior can also be altered to perform a
COMMIT or ROLLBACK. Is there another option you are thinking of?
COMMIT or ROLLBACK is tied very closely to TRANSACTIONs. In order to
start a new transaction, the previous transaction must end. A COMMIT
indicates a succesful end, while a ROLLBACK indicates a failure. Please keep
in mind that this is not always coded in this manner, i.e. unhandled
exceptions in PL/SQL followed by COMMIT in calling procs. DDL exists as a
separate transaction. In order to start the DDL transaction, the previous
transaction must end. Oracle terminates the previous transaction by
COMMITting the changes and begins a new tx.
  I used a small anonymous PL/SQL block to test COMMIT/ROLLBACK
behavior. I found it to be consistent with how I left SQL*Plus. If I killed
the window, the change was not committed. If I typed 'EXIT', the change was
committed.

Dan Fink




-Original Message-
Sent: Thursday, January 02, 2003 8:10 AM
To: Multiple recipients of list ORACLE-L


John,

there is no such thing as an implicit commit within Oracle.

the only implicit commit that I know of is during a sqlplus session when you
exit the program.  even this is settable by a sqlplus option.

distributed transactions that are controlled by a transaction coordinator
(like MS DTC) might issue commits only because the web application requires
all updates to be handled by the app-server.  but this is different from
what you are asking, I think.

Tom Mercadante
Oracle Certified Professional


-Original Message-
Sent: Thursday, January 02, 2003 9:14 AM
To: Multiple recipients of list ORACLE-L



 Under what circumstances is a COMMIT done implicitly?
 
 If I call a function or procedure that performs an insert, but does not do
 a commit, will a commit be implicitly performed when the function ends?
 
 i.e. is ...
 
 begin

  INSERT INTO
  ... etc.
 
 end;
 
 the same as 
 
 begin
 
 insert_the_record;
 
 end;
 
 where insert_the_record  is a procedure that does the insert, but nothing
 else.
-- 
Please see the official ORACLE-L FAQ: http://www.orafaq.net
-- 
Author: John Dunn
  INET: [EMAIL PROTECTED]

Fat City Network Services-- 858-538-5051 http://www.fatcity.com
San Diego, California-- Mailing list and web hosting services
-
To REMOVE yourself from this mailing list, send an E-Mail message
to: [EMAIL PROTECTED] (note EXACT spelling of 'ListGuru') and in
the message BODY, include a line containing: UNSUB ORACLE-L
(or the name of mailing list you want to be removed from).  You may
also send the HELP command for other information (like subscribing).
-- 
Please see the official ORACLE-L FAQ: http://www.orafaq.net
-- 
Author: Mercadante, Thomas F
  INET: [EMAIL PROTECTED]

Fat City Network Services-- 858-538-5051 http://www.fatcity.com
San Diego, California-- Mailing list and web hosting services
-
To REMOVE yourself from this