Y a-t-il une différence entre Rem et - commentaires pour SQL * Plus?

12

À l'invite SQL * Plus, les deux Remet sont --considérés comme des indicateurs de commentaire:

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

Y a-t-il une différence entre les deux techniques de commentaire?

Lazer
la source
1
Et n'oubliez pas que / * commentaire * / est également valable.
Gaius

Réponses:

17

La différence est que --et /* */peut être utilisé dans un bloc PL / SQL, alors que REM[ARK]non. Les éléments suivants fonctionneront dans SQL * Plus:

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

Ceux-ci ne:

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

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

La documentation 11.2 sur tous les types de commentaires contient plus d'informations sur les commentaires. Les bases sont ...

Vous pouvez saisir des commentaires dans un script de trois manières:

  • en utilisant la commande SQL * Plus REMARK pour les commentaires sur une seule ligne.

  • en utilisant les délimiteurs de commentaires SQL / * ... * / pour les commentaires sur une ou plusieurs lignes.

  • en utilisant les commentaires ANSI / ISO (American National Standards Institute / International Standards Organisation) - - pour les commentaires sur une seule ligne.

La documentation comprend également des notes sur quatre endroits où les commentaires ne doivent pas être utilisés, mais ceux-ci n'incluent pas d'autres différences.

Leigh Riffel
la source
Pour être honnête, je n'ai jamais rencontré de langage qui prend en charge REM comme délimiteur de commentaire où ces trois lettres ne sont pas les premiers caractères de commande sur une ligne donnée (cf @REM dans les fichiers batch)
jcolebrand
@jcolebrand En effet.
Leigh Riffel
2

REM est pris en charge en raison de la façon dont les fichiers MS BATCH sont commentés, et cet outil est utilisé avec les environnements d'automatisation.

- est pris en charge car il fait partie de la norme SQL. ( http://www.contrib.andrew.cmu.edu/~shadow/sql/sql1992.txt page 83 cf <comment introducer> ::= <minus sign><minus sign>[<minus sign>...])

jcolebrand
la source
0

Non, il ne devrait y avoir aucune différence.

mrdenny
la source
1
Pourquoi deux styles de commentaire alors?
Lazer
@Lazer: compatibilité descendante que j'attends
Gaius
1
Je crois que REM n'est valable que pour l'outil SQLPlus, alors que - et / ** / viennent du langage, ils fonctionnent aussi en MS SQL - TSQL par exemple.
Marian