Ich sortiere eine Reihe von SQL-Skripten für meine Firma aus, die in Oracle PL / SQL geschrieben sind. Ich stieß auf ein essentielles Skript mit einem seltsam platzierten Schrägstrich am unteren Rand. Es wird auf diese Weise in CVS eingecheckt. Ist das ein reiner Syntaxfehler oder hat es eine Funktion, die mir nicht bekannt ist? Das leicht verschleierte Skript:
%Vor%Der Schrägstrich hat eine Bedeutung :
Führt den zuletzt ausgeführten aus SQL-Befehl oder PL / SQL-Block, der ist im SQL-Puffer gespeichert. Sie können Geben Sie einen Schrägstrich (/) in den Befehl ein Aufforderung oder bei einer Zeilennummer Aufforderung von a Mehrzeiliger Befehl Der Schrägstrich-Befehl funktioniert ähnlich wie RUN, tut es aber listet den Befehl nicht auf.
Wenn Sie Oracle verwenden, "mischen" Sie drei verschiedene Grammatiken.
sqlplus kann SQL- und PL / SQL-Anweisungen ausführen / verarbeiten, indem es sie an den DB-Server sendet. Während sqlplus-Befehle von sqlplus selbst interpretiert werden.
Das Semikolon ";" ist nicht Teil der SQL-Grammatik und sqlplus erkennt es als das Ende der SQL-Anweisung. Während für PL / SQL ist es ein Teil der Grammatik und muss explizit sqlplus sagen, dass die Anweisung hier endet und mit einem Schrägstrich ausgeführt werden sollte.
Die anderen sqlplus-Befehle sind "EXIT", "DEFINE", "VARIABLE", "PRINT", "SET & lt; something & gt;" (außer SET ROLE).
Andererseits erkennt die Toad zum Beispiel das Ende des PL / SQL-Blocks, wenn sie eine leere Zeile sieht.
Es ist kein Fehler. Es führt das Skript aus.
Dies ist nützlich, wenn Sie verschiedene Skripte in einer Datei zusammenfügen und jede einzelne Aufgabe vor der nächsten ausführen soll.
dh Funktion erstellen / Erstellen Sie eine gespeicherte Prozedur, die die Funktion
verwendetOhne den Schrägstrich kann die gespeicherte Prozedur mit Fehlern erstellt oder nicht erstellt werden.