Oracle FAQ | Your Portal to the Oracle Knowledge Grid |
Home -> Community -> Usenet -> c.d.o.server -> Re: Execute Immediate DDL & DML
00steve wrote:
> On 11 Feb, 18:16, DA Morgan <damor..._at_psoug.org> wrote:
>>> On 9 Feb, 16:42, DA Morgan <damor..._at_psoug.org> wrote: >>>> 00steve wrote: >>>>> Thanks for your reponse. I have used SET ROLE NONE, and can still >>>>> select from user_sequences table. >>>> I'm with Frank. This is dangerous and guaranteed to fail. The only >>>> question is "When?" >>>> What is the business case? >>>> -- >>>> Daniel A. Morgan >>>> University of Washington >>>> damor..._at_x.washington.edu >>>> (replace x with u to respond) >>>> Puget Sound Oracle Users Groupwww.psoug.org >>> Hi, thanks for all replies. I should have really explained; I'm really >>> more concerned with learning PL/SQL, the script will never be used by >>> other developers. I am just interested in having a procedure call that >>> I can use in build scripts to calibrate sequences after table inserts >>> (letter management system which ships with some standard templates). >>> As the sequence and tables are completely separate within the DBMS >>> there is always going to be the risk that the function be misused. >>> None-the-less, I still feel that it is a useful procedure and learning >>> experience. I have found your comments insightful.
>>
>>
>>
>>
> > Ok, here's the situation. I have a coldfusion script which extracts a > build script from the data occupying 11 tables. I wrote this quickly > to save me the time involved in manually coding the INSERT build > script which will populate the system with the standard letter > templates (the letter templates were created through the same system, > although development and production systems are completely separate, > hence the need for a script to populate the production system) The > thing is, that once the script is executed, the sequences must be > incremented until they reach the value defined in the build script, to > make future additions (user-created templates function correctly)
It's a build script. Why not just create the sequence with the correct START value?
But if you must ... you could always do something like this: (and it is not intended to be real code)
LOOP
BEGIN
INSERT
EXCEPTION
WHEN dup_val_on_index THEN INCREMENT the sequence
-- Daniel A. Morgan University of Washington damorgan_at_x.washington.edu (replace x with u to respond) Puget Sound Oracle Users Group www.psoug.orgReceived on Mon Feb 12 2007 - 18:05:02 CST