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?


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.


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,


0

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


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
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.