Oracle
 sql >> Baza danych >  >> RDS >> Oracle

Jak skompilować wszystkie nieprawidłowe pakiety w schemacie?

Poniżej znajduje się przykład programu PL/SQL do kompilacji wszystkich nieprawidłowych specyfikacji pakietów i wszystkie nieprawidłowe treści pakietów dla bieżącego użytkownika (SCHEMA) w Oracle. Ponadto, jeśli którykolwiek z nieprawidłowych pakietów nie zostanie pomyślnie skompilowany, zostanie wydrukowana nazwa pakietu w celu ręcznego sprawdzenia błędów.

Skompiluj wszystkie nieprawidłowe pakiety w przykładzie 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;
/

Przykładowe wyjście (jeśli jakiś błąd):

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.

Zobacz też:

  • Jak stworzyć procedurę wewnątrz pakietu w Oracle
  • Jak sprawdzić liczbę nieprawidłowych obiektów w Oracle
  • 20 przydatnych przykładów instrukcji Oracle Insert
  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Jak sprawdzić, czy wartość istnieje w VARRAY

  2. Połączenie z bazą danych Oracle w web.config asp.net

  3. Oracle SQL - max() z wartościami NULL

  4. Liczba wierszy, których dotyczy UPDATE w PL/SQL

  5. MySQL:jak wykonać zabezpieczenia na poziomie wiersza (takie jak wirtualna prywatna baza danych Oracle)?