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?


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.


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


0

Nein, es sollte überhaupt keinen Unterschied geben.


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
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.