Czy jest jakaś różnica między Rem a komentarzami do SQL * Plus?

13

W wierszu polecenia SQL * Plus zarówno Remi --kwalifikują się jako wskaźniki komentarzy:

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

Czy jest jakaś różnica między tymi dwiema technikami komentowania?

Lazer
źródło
1
I nie zapomnij / * komentarz * / jest również poprawny.
Gajusz

Odpowiedzi:

18

Różnica polega na tym, że --i /* */może być używany w bloku PL / SQL, a REM[ARK]nie mogę. Następujące będą działać w SQL * Plus:

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

Nie będą one:

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

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

Dokumentacja 11.2 dotycząca wszystkich typów komentarzy zawiera więcej informacji o komentarzach. Podstawy są ...

Możesz wprowadzić komentarze w skrypcie na trzy sposoby:

  • za pomocą polecenia SQL * Plus REMARK w przypadku komentarzy jednowierszowych.

  • za pomocą ograniczników komentarzy SQL / * ... * / do komentarzy jedno- lub wieloliniowych.

  • z wykorzystaniem komentarzy ANSI / ISO (American National Standards Institute / International Standards Organisation) - - w przypadku komentarzy jednowierszowych.

Dokumentacja zawiera również uwagi dotyczące czterech miejsc, w których nie należy stosować komentarzy, ale nie zawierają one żadnych dalszych różnic.

Leigh Riffel
źródło
Szczerze mówiąc, nigdy nie spotkałem języka, który obsługuje REM jako separator komentarzy, w którym te trzy litery nie są pierwszymi znakami poleceń w danym wierszu (por. @REM w plikach wsadowych)
jcolebrand
@jcolebrand Rzeczywiście.
Leigh Riffel,
2

REM jest obsługiwany ze względu na sposób komentowania plików MS BATCH, a narzędzie to jest używane w środowiskach automatyzacji.

- jest obsługiwany, ponieważ jest częścią standardu SQL. ( http://www.contrib.andrew.cmu.edu/~shadow/sql/sql1992.txt strona 83 cf <comment introducer> ::= <minus sign><minus sign>[<minus sign>...])

jcolebrand
źródło
0

Nie, nie powinno być żadnej różnicy.

mrdenny
źródło
1
Dlaczego więc dwa style komentarzy?
Lazer
@Lazer: oczekuję kompatybilności wstecznej
Gajusz
1
Uważam, że REM działa tylko dla narzędzia SQLPlus, podczas gdy - i / ** / pochodzą z języka, działają również na przykład w MS SQL - TSQL.
Marian