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: DA Morgan <damorgan_at_x.washington.edu>
Date: Thu, 18 Nov 2004 08:14:46 -0800
Message-ID: <1100794401.999227@yasure>


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

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

An interesting perspective on the language we share ... though my understanding of it comes straight out of Hollywood.

The only thing about the original statement that made sense to me was if the OP had heard that when mixing DML perform the DDL last so that the implicit commits commit the transaction.

-- 
Daniel A. Morgan
University of Washington
damorgan_at_x.washington.edu
(replace 'x' with 'u' to respond)
Received on Thu Nov 18 2004 - 10:14:46 CST

Original text of this message

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