Die folgenden zwei Abfragen scheinen bei Ausführung in SQL * Plus gleichwertig zu sein:
1.
select * from user_tables;
2.
select * from user_tables
/
Gibt es einen Unterschied zwischen beiden Versionen?
Es gibt keinen Unterschied für eine einzelne SQL-Anweisung. Das Zeichen '/' in der eigenen Zeile weist SQL * Plus an, den Befehl im Puffer auszuführen. Sie können das Semikolon am Ende der meisten SQL-Anweisungen als Abkürzung für das '/' verwenden. Wenn Sie einen PL / SQL-Block ausführen oder eine Handvoll SQL-Anweisungen ausführen möchten CREATE TYPE
, müssen Sie jedoch das '/'
SQL> begin
2 null;
3 end;
4 /
PL/SQL procedure successfully completed.
SQL> create type foo as object (
2 col1 number,
3 col2 number );
4 /
Type created.
Verschiedene Tools haben möglicherweise leicht unterschiedliche Konventionen für die Ausführung mehrerer SQL- und PL / SQL-Anweisungen in einem Skript. Beachten Sie daher, dass dies SQL * Plus-spezifisch ist.
GO
? (Grundsätzlich ein Batch-Separator.)Und abgesehen von dem, was Justin erwähnt hat - da das ausgeführt wird,
/
was sich im Puffer befindet, kann es auch nach dem Bearbeiten des vorherigen Befehls oder sogar nur zum mehrmaligen Ausführen desselben Befehls verwendet werden.Wenn Sie
ed
sqlplus aufrufen, wird versucht, eine temporäre DateiAFIEDT.BUF
in Ihr aktuelles Verzeichnis zu schreiben und anschließend einen Editor (vi, notepad usw.) aufzurufen, damit Sie den zuletzt gesendeten Befehl bearbeiten können. Wenn Sie den Editor verlassen haben,/
senden Sie den geänderten Puffer.quelle