Ist dieser Schrägstrich in einem Oracle PL / SQL-Skript ein Fehler?

7

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%     
danieltalsky 10.10.2008, 22:16
quelle

5 Antworten

21

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.

    
Eddie Awad 10.10.2008, 22:20
quelle
7

Wenn Sie Oracle verwenden, "mischen" Sie drei verschiedene Grammatiken.

  • SQL
  • PL / SQL
  • sqlplus (Befehlszeilenclient)

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.

    
ibre5041 27.02.2013 09:20
quelle
5

das / am Ende ist es, dem Interpreter mitzuteilen, dass das geladene Skript ausgeführt werden soll

Grundsätzlich tippst du Sachen ein und tippst dann "/" ein und was du gerade eingegeben hast, wird ausgeführt

    
Eric 10.10.2008 22:20
quelle
3

Sowohl der Schrägstrich als auch der "Exit" lassen mich vermuten, dass Sie dieses Skript von SQLPLUS ausführen sollen. Möglicherweise erhalten Sie einen Fehler, wenn Sie versuchen, es auf andere Weise an Oracle zu senden. In diesem Fall werden beide einfach los.

    
Nuno G 10.10.2008 22:45
quelle
1

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

verwendet

Ohne den Schrägstrich kann die gespeicherte Prozedur mit Fehlern erstellt oder nicht erstellt werden.

    
user18443 10.10.2008 22:39
quelle

Tags und Links