¿Hay alguna diferencia entre Rem y - comentarios para SQL * Plus?

12

En SQL * Plus, tanto Remy --calificar como indicadores de comentarios:

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

¿Hay alguna diferencia entre las dos técnicas de comentarios?

Lazer
fuente
1
Y no olvides que * * comment * / también es válido.
Cayo

Respuestas:

17

La diferencia es eso --y /* */puede usarse en un bloque PL / SQL, mientras REM[ARK]que no puede. Lo siguiente funcionará en SQL * Plus:

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

Estos no:

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

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

La documentación de 11.2 sobre todos los tipos de comentarios tiene más información de comentarios. Los fundamentos son ...

Puede ingresar comentarios en un script de tres maneras:

  • utilizando el comando SQL * Plus REMARK para comentarios de una sola línea.

  • utilizando los delimitadores de comentarios SQL / * ... * / para comentarios de una o varias líneas.

  • utilizando comentarios ANSI / ISO (Instituto Nacional Americano de Estándares / Organización Internacional de Estándares) - - para comentarios de una sola línea.

La documentación también incluye notas en cuatro lugares donde los comentarios no deben usarse, pero estos no incluyen diferencias adicionales.

Leigh Riffel
fuente
Para ser justos, nunca he encontrado un lenguaje que admita REM como un delimitador de comentarios donde esas tres letras no son los primeros caracteres de comando en una línea determinada (cf @REM en archivos por lotes)
jcolebrand
@jcolebrand De hecho.
Leigh Riffel
2

REM es compatible debido a la forma en que se comentan los archivos MS BATCH, y esta herramienta se utiliza con entornos de automatización.

- es compatible debido a que forma parte del estándar SQL. ( http://www.contrib.andrew.cmu.edu/~shadow/sql/sql1992.txt página 83 cf <comment introducer> ::= <minus sign><minus sign>[<minus sign>...])

jcolebrand
fuente
0

No, no debería haber ninguna diferencia.

mrdenny
fuente
1
¿Por qué dos estilos de comentarios entonces?
Lazer
@Lazer: compatibilidad con versiones anteriores, espero
Gaius
1
Creo que REM es válido solo para la herramienta SQLPlus, mientras que - y / ** / provienen del lenguaje, también funcionan en MS SQL - TSQL, por ejemplo.
Marian el