Oracle FAQ Your Portal to the Oracle Knowledge Grid
HOME | ASK QUESTION | ADD INFO | SEARCH | E-MAIL US
 

Home -> Community -> Usenet -> c.d.o.server -> Re: DDL

Re: DDL

From: Richard Foote <richard.foote_at_bigpond.nospam.com>
Date: Thu, 18 Nov 2004 13:01:42 GMT
Message-ID: <W21nd.40617$K7.24082@news-server.bigpond.net.au>


"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.
>

Hi Howard,

Oh how the English language can confuse and deceive !!

"A piece of DDL is not necessarily the last statement in a transaction" because the last statement in a transaction is generally a commit or a rollback !!

Just like you said !!

The way *I* read the question "Why is DDL required to be the last statement in a transaction?" is that DDL is *required* to be the last statement in a transaction. I'm simply of the opinion that *no* DDL is required to be the last statement in a transaction, and that a piece of DDL is not necessarily the last statement in a transaction because a commit or a rollback *is* generally the last statement of a transaction.

Now read my earlier response and hopefully it makes sense.

Sometimes the bleedin obvious isn't so bleedin obvious ...

Cheers

Richard Received on Thu Nov 18 2004 - 07:01:42 CST

Original text of this message

HOME | ASK QUESTION | ADD INFO | SEARCH | E-MAIL US