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

Thủ tục lưu trữ PL / SQL là gì trong cơ sở dữ liệu Oracle

Tương tự như các hàm PL / SQL, một Thủ tục được lưu trữ là một độc lập chương trình con dùng để thực hiện một số nhiệm vụ cụ thể. Cũng tương tự như các hàm, các thủ tục được đặt tên là các khối PL / SQL do đó chúng có thể được sử dụng lại vì chúng được lưu trữ trong cơ sở dữ liệu như một đối tượng cơ sở dữ liệu. Nhưng không giống như các hàm PL / SQL, một thủ tục được lưu trữ không trả về bất kỳ giá trị nào .

Cú pháp của thủ tục được lưu trữ PL / SQL

CREATE [OR REPLACE] PROCEDURE pro_name (Parameter – List)
IS [AUTHID 	DEFINER | CURRENT_USER]
	Declare statements
BEGIN
	Executable statements 
END procedure name;
/ 

Cú pháp của thủ tục lưu trữ PL / SQL ở trên khá giống với cú pháp của Hàm PL / SQL mà chúng ta đã thấy trong hướng dẫn PL / SQL trước. Ngoại trừ hai điều:

  1. Không có điều khoản Trả lại.

Sự khác biệt cốt lõi giữa Hàm PL / SQL và một thủ tục được lưu trữ là không giống như Hàm, một thủ tục được lưu trữ không trả về bất kỳ giá trị nào.

  1. Mệnh đề AUTHID.

Mệnh đề AUTHID được sử dụng để thiết lập mô hình thẩm quyền cho Thủ tục PL / SQL. Mệnh đề này có hai cờ.

  1. DEFINER và
  2. CURRENT_USER

Vì điều khoản này là tùy chọn nên trong trường hợp nếu bạn không sử dụng mệnh đề AUTHID thì Oracle Engine sẽ đặt quyền (AUTHID) thành DEFINER theo mặc định cho bạn. Bây giờ, chắc hẳn bạn đang thắc mắc các quyền DEFINER và CURRENT_USER này là gì?

DEFINER phải: Quyền xác định là quyền mặc định được gán cho thủ tục bởi oracle engine. Quyền này có nghĩa là bất kỳ ai có Đặc quyền Thực thi trên quy trình sẽ hoạt động như thể họ là chủ sở hữu của lược đồ trong đó đặc quyền được tạo.

CURRENT_USER đúng: Đặt cấp độ quyền hạn của một thủ tục được lưu trữ thành quyền current_user sẽ ghi đè quyền mặc định được định nghĩa và thay đổi nó thành quyền người dùng.

Quyền của Invoker có nghĩa là bạn gọi thủ tục để hành động trên dữ liệu cục bộ của bạn và nó yêu cầu bạn sao chép các đối tượng dữ liệu trong bất kỳ lược đồ tham gia nào.

Một số điểm bổ sung về quy trình được lưu trữ

  • Bạn có thể xác định một thủ tục có hoặc không có các tham số chính thức.
  • Một tham số có thể là giá trị chuyển qua hoặc tham chiếu chuyển qua .
  • Một thủ tục sẽ là một thủ tục chuyển theo giá trị khi bạn không chỉ định chế độ tham số vì nó sử dụng chế độ IN mặc định.

Đó là phần Giới thiệu về Quy trình lưu trữ PL / SQL. Tôi đoán bạn cũng sẽ thích đọc những blog được đề cập dưới đây. Tất cả các blog được viết bằng cách tham gia Phỏng vấn việc làm và Chứng chỉ Cơ sở dữ liệu Oracle, hãy nhớ xem chúng.

  • Sự khác biệt giữa Hàm PL / SQL và Thủ tục được lưu trữ PL / SQL?
  • Chế độ tham số trong các hàm và thủ tục PL / SQL là gì?
  • Các tham số chính thức và thực tế là gì?

Luôn nhớ rằng:Bạn có thể giúp đỡ người khác trong việc học và ủng hộ tôi cũng như kênh của tôi cũng như blog này bằng cách chia sẻ blog này với bạn bè trên phương tiện truyền thông xã hội của bạn.

Đó là điều đó các bạn. Cảm ơn vì đã đọc. Hãy chăm sóc và có một ngày tuyệt vờ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. Hiển thị tất cả các truy vấn đến cơ sở dữ liệu Oracle

  2. Thời lượng của dữ liệu trong bảng Tạm thời chung?

  3. SQL * Plus làm thế nào để chấp nhận biến văn bản từ dấu nhắc?

  4. Bắt đầu với Oracle Application Express-APEX

  5. Cách xuất kết quả truy vấn Oracle sang tệp JSON khi sử dụng SQLcl