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

Cách tạo một thủ tục bên trong một gói trong Oracle

Trong Oracle, trước tiên bạn cần khai báo thủ tục trong một đặc tả gói và sau đó tạo thủ tục đầy đủ trong thân gói. Bởi vì nếu bạn cố gắng tạo thủ tục chỉ trong thân gói mà không khai báo nó trong đặc tả gói thì bạn sẽ gặp lỗi PLS-00302 phải khai báo thành phần và ORA-06550 khối PL / SQL không hợp lệ. Vì vậy, dưới đây tôi sẽ đưa ra một ví dụ về cách tạo một thủ tục bên trong một gói trong Oracle.

Trong ví dụ này, chúng tôi sẽ tạo một thủ tục update_comm để cập nhật tiền hoa hồng trong bảng EMP. Quy trình này sẽ lấy tham số cho phần trăm hoa hồng.

Tạo một thủ tục bên trong một gói trong ví dụ Oracle

Khai báo quy trình trong đặc điểm kỹ thuật gói

CREATE OR REPLACE PACKAGE emp_pkg
IS
PROCEDURE update_comm (i_comm IN emp.comm%TYPE);
END emp_pkg;

Tạo quy trình đầy đủ trong phần thân gói

CREATE OR REPLACE PACKAGE BODY emp_pkg
IS
PROCEDURE update_comm (i_comm IN emp.comm%TYPE)
IS
BEGIN

UPDATE emp
SET comm = sal * NVL (i_comm, 0) / 100;

COMMIT;
END update_comm;
END emp_pkg;

Bây giờ bạn có thể thực hiện quy trình này như sau:

BEGIN
/* Updating commission with 5% of salary */
emp_pkg.update_comm (5);
END;
  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Cách loại bỏ tất cả các phiên oracle đang hoạt động và không hoạt động cho người dùng

  2. Làm cách nào để tránh lỗi độ dài biến thô quá dài trong SQL Developer?

  3. Tại sao mẫu ngủ đông này số lượng lớn

  4. Oracle - ORA-06502:PL / SQL:lỗi số hoặc giá trị (DBMS_OUTPUT)

  5. Làm cách nào để tìm các giá trị trùng lặp trong bảng trong Oracle?