Ich habe eine SQL-Datei mit wenigen Befehlen.
Was ist der richtige Weg, Zeilen im Skript zu beenden?
Ist es Schrägstrich [/] Semikolon [;] beide?
Gibt es Unterschiede zwischen regulären SQL und gespeicherten Prozedurcode?
Vielen Dank
Bei normalen SQL-Anweisungen funktioniert entweder ein /
in einer Zeile oder ein ;
am Ende des Befehls.
Für Anweisungen, die PL / SQL-Code enthalten, z. B. CREATE FUNCTION
, CREATE PROCEDURE
, CREATE PACKAGE
, CREATE TYPE
oder anonyme Blöcke ( DECLARE
/ BEGIN
/ END
), ein ;
führt den Befehl nicht aus. Da PL / SQL Semikolons als Zeilenabschlusszeichen verwendet, muss seine Verwendung als Befehlsabschluss in diesen Anweisungen unterdrückt werden. In diesen Fällen müssen Sie /
verwenden, um den Befehl auszuführen.
Nach meiner Erfahrung verwenden die Leute lieber das Semikolon, wenn es möglich ist, und verwenden den Schrägstrich nur bei Bedarf.
Beachten Sie, dass für SQLPlus-Clientbefehle - wie SET
oder EXECUTE
- kein Befehlsabschluss erforderlich ist, obwohl die Benutzer sie häufig aus Gewohnheit mit einem Semikolon beenden.
; So sollten Sie Ihre sql-Befehle beenden, dasselbe gilt für PLSQL-Prozeduren:
select * from dual;
select sysdate from dual;
select table_name from user tables;
exec dbms_output.putline('Hello');
Normalerweise können wir " ;
" verwenden, um die SQL-Anweisung zu beenden
aber für create functions
, triggers
, procedures
müssen Sie " /
" nach " ;
" verwenden, um die SQL-Anweisung zu beenden.
" /
" ist möglicherweise nicht erforderlich, wenn Sie ein Entwickler-Tool wie Oracle SQL Developer, Kröte usw. verwenden, aber es sollte Mandat sein, wenn Sie Ihre Abfrage direkt in der Linux-Maschine ausführen.