Apakah ada perbedaan antara Rem dan - komentar untuk SQL * Plus?

12

Pada SQL * Plus prompt, keduanya Remdan --memenuhi syarat sebagai indikator komentar:

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

Apakah ada perbedaan sama sekali antara kedua teknik berkomentar?

Lazer
sumber
1
Dan jangan lupa / * komentar * / juga valid.
Gayus

Jawaban:

17

Perbedaannya adalah itu --dan /* */dapat digunakan dalam blok PL / SQL, sementara REM[ARK]tidak bisa. Berikut ini akan berfungsi dalam SQL * Plus:

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

Ini tidak akan:

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

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

The 11,2 dokumentasi di semua jenis komentar memiliki informasi komentar lebih. Dasar-dasarnya adalah ...

Anda dapat memasukkan komentar dalam skrip dengan tiga cara:

  • menggunakan perintah SQL * Plus REMARK untuk komentar satu baris.

  • menggunakan pembatas komentar SQL / * ... * / untuk komentar tunggal atau multi-baris.

  • menggunakan komentar ANSI / ISO (Institut Standar Nasional Amerika / Organisasi Standar Internasional) - - untuk komentar satu baris.

Dokumentasi juga mencakup catatan di empat tempat yang komentar tidak boleh digunakan, tetapi ini tidak termasuk perbedaan lebih lanjut.

Leigh Riffel
sumber
Agar adil, saya tidak pernah menemukan bahasa yang mendukung REM sebagai pembatas komentar di mana ketiga huruf tersebut bukan karakter perintah pertama pada baris tertentu (cf @REM dalam file batch)
jcolebrand
@ jcolebrand Memang.
Leigh Riffel
2

REM didukung karena menjadi cara file MS BATCH dikomentari, dan alat ini digunakan dengan lingkungan otomasi.

- Didukung karena menjadi bagian dari standar SQL. ( http://www.contrib.andrew.cmu.edu/~shadow/sql/sql1992.txt halaman 83 cf <comment introducer> ::= <minus sign><minus sign>[<minus sign>...])

jcolebrand
sumber
0

Tidak seharusnya tidak ada perbedaan sama sekali.

mrdenny
sumber
1
Mengapa dua gaya komentar?
Lazer
@ Lazer: kompatibilitas ke belakang saya harapkan
Gayus
1
Saya percaya bahwa REM hanya valid untuk alat SQLPlus, sementara - dan / ** / berasal dari bahasa, mereka bekerja juga dalam MS SQL - TSQL misalnya.
Marian