Gibt es einen Unterschied zwischen Rem und - Kommentaren für SQL * Plus?

12

Bei der SQL * Plus-Eingabeaufforderung werden beide Remund --als Kommentarindikatoren qualifiziert:

Rem this is a comment
-- this is also a comment
create table emp (
id number primary key,
name cvarchar2(40));

Gibt es überhaupt einen Unterschied zwischen den beiden Kommentartechniken?

Laser
quelle
1
Und vergessen Sie nicht, dass / * Kommentar * / auch gültig ist.
Gaius

Antworten:

17

Der Unterschied besteht darin, dass --und /* */kann in einem PL / SQL-Block verwendet werden, REM[ARK]kann aber nicht. Folgendes funktioniert in SQL * Plus:

REM comment
-- comment
/* comment */
begin
   DBMS_OUTPUT.PUT_LINE('Test'); --comment
   DBMS_OUTPUT.PUT_LINE('Test'); /* comment */
end; 
/

Diese werden nicht:

begin
   DBMS_OUTPUT.PUT_LINE('Test'); REM comment
end; 
/

begin
   REM comment
   DBMS_OUTPUT.PUT_LINE('Test');
end; 
/

Die 11.2-Dokumentation zu allen Kommentartypen enthält weitere Kommentarinformationen. Die Grundlagen sind ...

Sie haben drei Möglichkeiten, Kommentare in ein Skript einzugeben:

  • Verwenden des SQL * Plus-Befehls REMARK für einzeilige Kommentare.

  • Verwenden der SQL-Kommentarbegrenzer / * ... * / für ein- oder mehrzeilige Kommentare.

  • Verwenden von ANSI / ISO-Kommentaren (American National Standards Institute / Internationale Normungsorganisation) - - für einzeilige Kommentare.

Die Dokumentation enthält auch Hinweise zu vier Stellen, an denen Kommentare nicht verwendet werden sollten, die jedoch keine weiteren Unterschiede enthalten.

Leigh Riffel
quelle
Um ehrlich zu sein, ich bin noch nie auf eine Sprache gestoßen, die REM als Kommentarbegrenzer unterstützt, wobei diese drei Buchstaben nicht die ersten Befehlszeichen in einer bestimmten Zeile sind (siehe @REM in Batch-Dateien)
jcolebrand
@ jcolebrand In der Tat.
Leigh Riffel
2

REM wird unterstützt, da MS BATCH-Dateien mit Kommentaren versehen sind und dieses Tool in Automatisierungsumgebungen verwendet wird.

- wird unterstützt, da es Teil des SQL-Standards ist. ( http://www.contrib.andrew.cmu.edu/~shadow/sql/sql1992.txt, Seite 83 <comment introducer> ::= <minus sign><minus sign>[<minus sign>...])

jcolebrand
quelle
0

Nein, es sollte überhaupt keinen Unterschied geben.

mrdenny
quelle
1
Warum dann zwei Kommentarstile?
Lazer
@ Lazer: Abwärtskompatibilität erwarte ich
Gaius
1
Ich glaube, dass REM nur für das Tool SQLPlus gültig ist, während - und / ** / aus der Sprache stammen, funktionieren sie beispielsweise auch in MS SQL - TSQL.
Marian