Dưới đây là ví dụ về chương trình PL / SQL để biên dịch tất cả các thông số kỹ thuật gói không hợp lệ và tất cả các nội dung gói không hợp lệ cho người dùng hiện tại (SCHEMA) trong Oracle. Ngoài ra, nếu bất kỳ gói không hợp lệ nào không được biên dịch thành công thì nó sẽ in tên gói để kiểm tra lỗi thủ công.
Biên dịch tất cả các gói không hợp lệ trong ví dụ Oracle
SET SERVEROUTPUT ON; DECLARE CURSOR c_pkg IS SELECT owner, object_type, object_name FROM dba_objects WHERE status = 'INVALID' AND owner = USER AND object_type LIKE 'PACKAGE%' ORDER BY object_type; BEGIN FOR c IN c_pkg LOOP BEGIN IF c.object_type = 'PACKAGE' THEN EXECUTE IMMEDIATE 'ALTER PACKAGE ' || c.owner || '.' || c.object_name || ' COMPILE'; ELSE EXECUTE IMMEDIATE 'ALTER PACKAGE ' || c.owner || '.' || c.object_name || ' COMPILE BODY'; END IF; EXCEPTION WHEN OTHERS THEN DBMS_OUTPUT.put_line(c.object_type || ' ' || c.object_name || ' is still invalid. Check the package manually to resolve.'); END; END LOOP; END; /
Đầu ra mẫu (nếu có lỗi):
PACKAGE EMP_PKG is still invalid. Check the package manually to resolve. PACKAGE BODY EMP_PKG is still invalid. Check the package manually to resolve. PL/SQL procedure successfully completed.
Xem thêm:
- Cách tạo một thủ tục bên trong một gói trong Oracle
- Cách kiểm tra số lượng đối tượng không hợp lệ trong Oracle
- 20 Ví dụ về câu lệnh chèn Oracle hữu ích