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: Howard J. Rogers <hjr_at_dizwell.com>
Date: Sat, 20 Nov 2004 09:11:09 +1100
Message-ID: <419e6f7c$0$25116$afc38c87@news.optusnet.com.au>


Richard Foote wrote:

> "David Fitzjarrell" <fitzjarrell_at_cox.net> wrote in message 
> news:9711ade0.0411181508.16af523e_at_posting.google.com...
> 

>>DA Morgan <damorgan_at_x.washington.edu> wrote in message
>>news:<1100761866.606335_at_yasure>...
>>
>>>Rahul Jain wrote:
>>>
>>>
>>>>Why is DDL required to be the last statement in a transaction?
>>>
>>>It isn't. Where did you hear this?
>>
>>Presuming you mix DML and DDL in the same script or set of commands
>>(which, with a few limited exceptions like dropping or creating a temp
>>table, I question), to preserve the completeness (for lack of a better
>>word at the moment) of the transaction the DDL should be placed AFTER
>>any inserts, updates and/or deletes to data. The OP has worded this
>>incorrectly, and English, for non-English speakers (and some who claim
>>it as their primary tongue) is a cruel taskmistress. To be correct:
>>
>>If it is necessary to mix both DML and DDL the DDL should follow any
>>statements comprising a single transaction, as the DDL will issue a
>>commit prior to its execution, and another commit afterwards. Note
>>that the DDL will commit the prior transaction BEFORE it executes, so
>>it isn't truly a part of the transaction itself; the DDL starts a new
>>transaction comprised solely of the DDL.
>>
>>So, Howard is correct, and Daniel and Richard are also correct, since
>>the original question can be read in a number of ways. Howard read it
>>as I did initially, asking, "Why must I put my DDL at the end of a
>>transaction?" Daniel and Richard read it as it was written,

Help me out here. Daniel and Richard said something like this too. So I must be missing something.

I can re-write the question to indicate what I took the question to mean: "Why *is* DDL the last statement in a transaction" (Answer: It is inevitably so, because it commits).

What would be the re-write for Daniel and Richard's reading of the question? I can't see one myself, unless it is: "Why does Oracle/the documentation/support/Whoever insist/instruct me to place DDL at the end of my transaction?"

To which their answer was "they (ie, the documentation, Oracle support, whoever, don't", though I think they could have helpfully added "but even without someone making you do it, it will inevitably be the last statement, because it commits".

I don't see that the question is poorly written, uses "incorrect" English, or can be neatly tossed aside as another product of 'eccentric' Indians trying to be clever (see the frankly rather demeaning link in Joel's post). The error here, IMHO, is in the assumptions of those doing the reading. I'd like to try and understand what the other parties' interpretation of the question was, therefore.

>>and their
>>responses are also correct, in that there is no requirement to include
>>DDL at the end of a transaction.

So you are saying that their assumption is that the word "require" implies that someone must be doing the "requiring". That accords with my interpretation No. 2 above.

Trouble is, that's not right.

The word "requires" does not just mean "someone or something made it obligatory" or "someone demanded it". It can also mean simply "it is necessary". "Plants require sunlight", for example, does not imply that God insisted it would be so, or legislated the fact. It just happens to be the case that they do, indeed, need sunlight.

In like manner, it just happens to be the case that DDL statements terminate transactions. Therefore, it is entirely correct to state that "DDL requires to be the last statement in a transaction". Which is awfully close to what our OP actually wrote... quite correctly.

Now, since this involves digging out the dictionaries, I expect this to be the end of the matter, as it veers away from technical Oracle matters and descends to the depths of textual interpretation. I just think people (and I'm not directing this at you alone or indeed primarily, David) should be a little more careful about claiming that what other people have written is "poor English" or "incorrect grammar", or to reach for what seems to be fast becoming the 'funny little colonials' defence.

Regards
HJR Received on Fri Nov 19 2004 - 16:11:09 CST

Original text of this message

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