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

Làm thế nào để biên dịch tất cả các gói không hợp lệ trong lược đồ?

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
  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. (+) =toán tử trong oracle sql trong mệnh đề where

  2. vấn đề trong việc tìm kiếm danh sách các tệp trong thư mục

  3. 4 cách để chèn nhiều hàng trong Oracle

  4. Giới thiệu về SQL động gốc trong cơ sở dữ liệu Oracle

  5. Đặt Thời gian chờ Mạng cho kết nối JDBC