C'è qualche differenza tra Rem e - commenti per SQL * Plus?


12

Al prompt di SQL * Plus, entrambi Reme si --qualificano come indicatori di commento:

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

C'è qualche differenza tra le due tecniche di commento?


1
E non dimenticare / * comment * / è valido anche.
Gaius,

Risposte:


17

La differenza è che --e /* */può essere utilizzato in un blocco PL / SQL, mentre REM[ARK]non si può. Di seguito funzionerà in SQL * Plus:

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

Questi non:

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

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

La documentazione 11.2 su tutti i tipi di commento contiene ulteriori informazioni sui commenti. Le basi sono ...

Puoi inserire commenti in uno script in tre modi:

  • utilizzando il comando SQL * Plus REMARK per i commenti a riga singola.

  • utilizzando i delimitatori di commenti SQL / * ... * / per commenti a riga singola o multipla.

  • utilizzando i commenti ANSI / ISO (American National Standards Institute / International Standards Organization) - - per i commenti a riga singola.

La documentazione include anche note su quattro punti in cui i commenti non devono essere utilizzati, ma questi non includono ulteriori differenze.


Ad essere sinceri, non ho mai incontrato un linguaggio che supporti REM come delimitatore di commenti in cui quelle tre lettere non sono i primi caratteri di comando su una determinata riga (vedi @REM nei file batch)
jcolebrand

@jcolebrand In effetti.
Leigh Riffel,


0

No, non ci dovrebbe essere alcuna differenza.


1
Perché allora due stili di commento?
Lazer,

@Lazer: compatibilità all'indietro che mi aspetto
Gaius

1
Credo che REM sia valido solo per lo strumento SQLPlus, mentre - e / ** / provengono dal linguaggio, funzionano anche in MS SQL - TSQL per esempio.
Marian,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.