Für meine Anwendung, die eine Oracle 8 DB verwendet, stelle ich ein SQL-Skript zur Verfügung, um Dinge wie Trigger, Sequenzen usw. einzurichten, die kopiert und in SQL * Plus eingefügt werden können. Ich möchte, dass das Skript nicht mit einem Fehler beendet wird, wenn eine Sequenz, die ich erstellen möchte, bereits existiert. Für einen Trigger kann dies einfach mit "Trigger erstellen oder ersetzen ..." durchgeführt werden, aber für eine Sequenz funktioniert das nicht. Ich habe auch versucht "", wenn nicht existiert meine Sequenz dann Sequenz erstellen ... "aber es nicht auch. Gibt es eine Alternative?Gibt es in Oracle SQL etwas wie "Wenn nicht existiert, erstellen Sie eine Sequenz ..."?
Alternativ, wenn dies nicht möglich ist, gibt es eine Möglichkeit, eine" drop sequence mysequence "ohne SQL * plus Abbruchs das Skript, wenn mysequence existiert nicht
Wie das Vorhandensein einer AUTOINCREMENT Funktion in Oracle würde dazu beitragen, zu lösen, was eindeutig ein Problem Quellcodeverwaltung/Konfigurationsmanagement ist? – APC
@APC: Entschuldigung, ich verstehe nicht. Kannst du das genauer erklären? Was ich meinte ist: Alles was ich für einen Tisch brauche ist ein Autoinkrementfeld. In z.B. SQL Server Ich definiere gerade die Spalte als autoinc Feld, und ich bin fertig. In Oracle muss ich eine numerische Spalte erstellen, dann eine Sequenz und dann einen Auslöser, um diese Sequenz zu benutzen, um meine Spalte zu füllen. Das scheint mir nicht sehr geradlinig zu sein. – Timo
Mein Punkt ist, wenn Sie eine ordnungsgemäße Schema-Verwaltung an Ort und Stelle hätten, müssten Sie die vorherige Existenz einer Sequenz nicht behandeln, weil Sie nur eine CREATE SEQUENCE-Anweisung gegen Datenbanken ausführen würden, von denen Sie wussten, dass diese Sequenz nicht existierte. – APC