Oracle
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Oracle

Khi nào tôi cần sử dụng dấu chấm phẩy và dấu gạch chéo trong Oracle SQL?

Tôi biết đây là một chủ đề cũ, nhưng tôi chỉ tình cờ tìm thấy nó và tôi cảm thấy điều này chưa được giải thích hoàn toàn.

Có một sự khác biệt rất lớn trong SQL * Plus giữa ý nghĩa của / và một ; bởi vì chúng hoạt động khác nhau.

; kết thúc một câu lệnh SQL, trong khi / thực thi bất cứ điều gì có trong "bộ đệm" hiện tại. Vì vậy, khi bạn sử dụng ; một / câu lệnh thực sự được thực thi hai lần.

Bạn có thể dễ dàng nhận thấy điều đó bằng cách sử dụng / sau khi chạy một câu lệnh:

SQL*Plus: Release 11.2.0.1.0 Production on Wed Apr 18 12:37:20 2012

Copyright (c) 1982, 2010, Oracle.  All rights reserved.

Connected to:
Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - Production
With the Partitioning and OLAP options

SQL> drop table foo;

Table dropped.

SQL> /
drop table foo
           *
ERROR at line 1:
ORA-00942: table or view does not exist

Trong trường hợp này, người ta thực sự nhận thấy lỗi.


Nhưng giả sử có một tập lệnh SQL như thế này:

drop table foo;
/

Và điều này được chạy từ bên trong SQL * Plus nên điều này sẽ rất khó hiểu:

SQL*Plus: Release 11.2.0.1.0 Production on Wed Apr 18 12:38:05 2012

Copyright (c) 1982, 2010, Oracle.  All rights reserved.


Connected to:
Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - Production
With the Partitioning and OLAP options

SQL> @drop

Table dropped.

drop table foo
           *
ERROR at line 1:
ORA-00942: table or view does not exist

/ chủ yếu được yêu cầu để chạy các câu lệnh có nhúng ; như CREATE PROCEDURE , CREATE FUNCTION , CREATE PACKAGE và cho bất kỳ BEGIN...END nào khối.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Làm cách nào để chèn vào cột BLOB từ một câu lệnh chèn trong sqldeveloper?

  2. Tạo dạng xem Pivot trong SQL từ bảng SQL

  3. Oracle sql để đếm các trường hợp của các giá trị khác nhau trong một cột

  4. Tính năng mới của Oracle 18c:Sửa đổi phân vùng trực tuyến

  5. PL / SQL Online MCQ Quiz