Có sự khác biệt nào giữa Rem và - nhận xét cho SQL * Plus không?


12

Trên dấu nhắc SQL * Plus, cả hai Rem--đủ điều kiện làm chỉ số nhận xét:

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

Có sự khác biệt nào giữa hai kỹ thuật bình luận không?


1
Và đừng quên / * bình luận * / cũng hợp lệ.
Gaius

Câu trả lời:


17

Sự khác biệt là --/* */có thể được sử dụng trong khối PL / SQL, trong khi REM[ARK]không thể. Phần sau sẽ hoạt động trong SQL * Plus:

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

Đây sẽ không:

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

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

Các tài liệu 11,2 trên tất cả các loại bình luận có thông tin bình luận hơn. Những điều cơ bản là ...

Bạn có thể nhập nhận xét trong một tập lệnh theo ba cách:

  • sử dụng lệnh SQL * Plus REMARK cho các nhận xét dòng đơn.

  • sử dụng các dấu phân cách nhận xét SQL / * ... * / cho các nhận xét đơn hoặc nhiều dòng.

  • sử dụng các bình luận ANSI / ISO (Viện Tiêu chuẩn Quốc gia Hoa Kỳ / Tổ chức Tiêu chuẩn Quốc tế) - - cho các nhận xét dòng đơn.

Tài liệu này cũng bao gồm các ghi chú về bốn địa điểm mà các bình luận không nên được sử dụng, nhưng chúng không bao gồm bất kỳ sự khác biệt nào nữa.


Công bằng mà nói, tôi chưa bao giờ gặp phải một ngôn ngữ hỗ trợ REM như một dấu phân cách nhận xét trong đó ba chữ cái đó không phải là ký tự lệnh đầu tiên trên một dòng nhất định (cf @REM trong các tệp bó)
jcolebrand

@jcolebrand Thật vậy.
Leigh Riffel

2

REM được hỗ trợ do cách các tệp MS BATCH được nhận xét và công cụ này được sử dụng với môi trường tự động hóa.

- được hỗ trợ do là một phần của tiêu chuẩn SQL. ( http://www.contrib.andrew.cmu.edu/~shadow/sql/sql1992.txt trang 83 cf <comment introducer> ::= <minus sign><minus sign>[<minus sign>...])


0

Không nên có sự khác biệt nào cả.


1
Tại sao hai phong cách bình luận sau đó?
Lazer

@Lazer: khả năng tương thích ngược tôi mong đợi
Gaius

1
Tôi tin rằng REM chỉ hợp lệ cho công cụ SQLPlus, trong khi - và / ** / đến từ ngôn ngữ, chúng cũng hoạt động trong MS SQL - TSQL chẳng hạn.
Mary
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.