Oracle FAQ | Your Portal to the Oracle Knowledge Grid |
![]() |
![]() |
Home -> Community -> Usenet -> c.d.o.server -> Re: DDL
Richard Foote wrote:
> "Howard J. Rogers" <hjr_at_dizwell.com> wrote in message
> news:419c730a$0$25115$afc38c87_at_news.optusnet.com.au...
>
>>DA Morgan wrote: >> >>>Howard J. Rogers wrote: >>> >>> >>>>Rahul Jain wrote: >>>> >>>> >>>>>Why is DDL required to be the last statement in a transaction? >>>> >>>> >>>> >>>>Because there is an implicit commit before and after each and every DDL >>>>statement. >>>> >>>>Regards >>>>HJR >>> >>> >>>You are absolutely correct Howard ... but I fail to see what your answer >>>has to do with the question. But then its late and I'm tired. >> >> >>Well, I'm no developer, but I was always taught that a transaction starts >>with some piece of DML and ends when you say 'commit' (or rollback, of >>course). >> >>Insert money into new bank account; >>Delete money from old account; >>Commit both changes; >> >>If DDL implies a commit, surely that therefore must count as the >>termination of a transaction? And therefore by definition, the DDL >>statement becomes the last statement in a transaction. >> >>Insert money into new bank account; >>Delete money from old account; >>Drop table EMP; >> >>...which achieves exactly the same thing as before. >> >>Since both you and Richard appear to agree that a piece of DDL is not >>necessarily the last statement in a transaction, I guess I must be missing >>something. Enlightenment from either would therefore be appreciated. >>
I still don't get the subtlety you see.
All DDL issues a commit. Therefore, taking the word "required" out of the equation, all DDL statements WILL be the last statement in a transaction, whether you like it or not.
Cut and dice it any way you care to, but the second you issue a DDL statement, you've just terminated your transaction.
Is the perceived ambiguity here in the use of the word "required" perhaps? On the grounds that it seems to imply someone or some document demanding that it should be?? I'd say that was irrelevant. It's not that there is some law in the Universe stating "thou shalt issue DDL last". It's that there's a law which states "DDL finishes transactions, so the DDL will logically and inevitably be the last statement in a transaction".
We are not dealing with subjunctives here, in other words ("should"). We are dealing with imperatives ("will").
As the line in a Benjamin Britten opera has it: "It seems we agree but are not of the same opinion"!!
Regards
HJR
Received on Thu Nov 18 2004 - 14:56:44 CST
![]() |
![]() |