Wir haben diese Woche in meinem Unternehmen einige Debatten darüber geführt, wie wir unsere SQL-Skripte schreiben sollen.
Hintergrund: Unsere Datenbank ist Oracle 10g (baldiges Upgrade auf 11). Unser DBA-Team verwendet SQLPlus, um unsere Skripte für die Produktion bereitzustellen.
Jetzt hatten wir kürzlich eine Bereitstellung, die fehlgeschlagen ist, weil sowohl ein Semikolon als auch ein Schrägstrich ( /
) verwendet wurden. Das Semikolon stand am Ende jeder Anweisung und der Schrägstrich stand zwischen den Anweisungen.
alter table foo.bar drop constraint bar1;
/
alter table foo.can drop constraint can1;
/
Später im Skript wurden einige Trigger hinzugefügt, einige Ansichten erstellt und einige gespeicherte Prozeduren. Sowohl die ;
als auch die /
Anweisung haben dazu geführt, dass jede Anweisung zweimal ausgeführt wurde, was zu Fehlern führte (insbesondere bei den Einfügungen, die eindeutig sein mussten).
In SQL Developer passiert dies nicht, in TOAD nicht. Wenn Sie bestimmte Befehle ausführen, funktionieren diese ohne die /
darin enthaltenen nicht.
Wenn Sie in PL / SQL ein Unterprogramm (DECLARE, BEGIN, END) haben, wird das verwendete Semikolon als Teil des Unterprogramms betrachtet, sodass Sie den Schrägstrich verwenden müssen.
Meine Frage lautet also: Wenn Ihre Datenbank Oracle ist, wie können Sie Ihr SQL-Skript richtig schreiben? Da Sie wissen, dass Ihre Datenbank Oracle ist, sollten Sie immer die verwenden /
?
sqlterminator
, !
wenn Sie möchten), und diese Konvention wird in der Regel von anderen Tools befolgt. Die PL / SQL-Sprache verwendet jedoch Semikolons als obligatorisches Syntaxelement.