Sự khác biệt giữa việc chấm dứt một câu lệnh sql của Oracle bằng dấu chấm phẩy hoặc với một dấu gạch chéo trên dòng tiếp theo là gì?


8

Hai truy vấn sau đây có vẻ tương đương nhau khi được thực hiện trong sql * plus:

1.

select * from user_tables;

2.

select * from user_tables
/

Có sự khác biệt nào giữa cả hai phiên bản không?

Câu trả lời:


11

Không có sự khác biệt cho một câu lệnh SQL. Ký tự '/' trên dòng riêng của nó báo cho SQL * Plus thực thi lệnh trong bộ đệm. Bạn có thể sử dụng dấu chấm phẩy ở cuối hầu hết các câu lệnh SQL như một cách viết tắt cho '/'. CREATE TYPETuy nhiên, nếu bạn muốn thực thi khối PL / SQL hoặc thực thi một số câu lệnh SQL như thế nào , bạn cần sử dụng '/'

SQL> begin
  2    null;
  3  end;
  4  /

PL/SQL procedure successfully completed.

SQL> create type foo as object (
  2    col1 number,
  3    col2 number );
  4  /

Type created.

Các công cụ khác nhau có thể có các quy ước hơi khác nhau về cách bạn thực thi nhiều câu lệnh SQL và PL / SQL trong một tập lệnh, vì vậy hãy lưu ý rằng đây là SQL * Plus cụ thể.


Nó có giống với SQL Server GOkhông? (Về cơ bản, một dải phân cách hàng loạt.)
Nick Chammas

@NickChammas - Nhiều hay ít, vâng.
Hang Justin

5

Và bên cạnh những gì Justin đã đề cập - vì /chạy bất cứ thứ gì trong bộ đệm, nó cũng có thể được sử dụng sau khi chỉnh sửa lệnh trước đó hoặc thậm chí chỉ để chạy cùng một lệnh nhiều lần.

Nếu bạn gọi edbằng sqlplus, nó sẽ cố gắng viết một tệp tạm thời AFIEDT.BUFtrong thư mục hiện tại của bạn, sau đó đưa ra một trình soạn thảo (vi, notepad, v.v.), để bạn chỉnh sửa lệnh cuối cùng được gửi. Một bạn đã thoát khỏi trình soạn thảo, bạn sử dụng /để gửi bộ đệm đã sửa đổi.


1
Tôi nhận được bkriszio.blogspot.com/2006/11/ .
bernd_k
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.