Existe alguma diferença entre Rem e - comentários para SQL * Plus?


12

No prompt do SQL * Plus, ambos Reme se --qualificam como indicadores de comentários:

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

Existe alguma diferença entre as duas técnicas de comentários?


1
E não se esqueça / * comment * / também é válido.
Gaius

Respostas:


17

A diferença é que --e /* */pode ser usada em um bloco PL / SQL, enquanto REM[ARK]não pode. O seguinte funcionará no SQL * Plus:

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

Estes não irão:

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

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

A documentação 11.2 em todos os tipos de comentários possui mais informações. O básico é ...

Você pode inserir comentários em um script de três maneiras:

  • usando o comando SQL * Plus REMARK para comentários de linha única.

  • usando os delimitadores de comentários SQL / * ... * / para comentários de uma ou várias linhas.

  • usando comentários ANSI / ISO (Instituto Nacional Americano de Padrões / Organização Internacional de Padrões) - - para comentários de linha única.

A documentação também inclui notas em quatro locais em que os comentários não devem ser usados, mas não incluem outras diferenças.


Para ser justo, eu nunca encontrei uma linguagem que suporta REM como um delimitador de comentário onde essas três letras não são os primeiros caracteres de comando em uma determinada linha (cf @REM em arquivos em lote)
jcolebrand

@jcolebrand De fato.
Leigh Riffel


0

Não, não deve haver nenhuma diferença.


1
Por que dois estilos de comentário, então?
Lazer

@Lazer: compatibilidade com versões anteriores, espero
Gaius

1
Acredito que o REM seja válido apenas para a ferramenta SQLPlus, enquanto - e / ** / são provenientes da linguagem, eles também funcionam no MS SQL - TSQL, por exemplo.
Marian
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.