sql >> Databáze >  >> RDS >> Oracle

Jak zkompilovat všechny neplatné balíčky ve schématu?

Níže je uveden příklad programu PL/SQL pro kompilaci všech neplatných specifikací balíčků a všechna neplatná těla balíčků pro aktuálního uživatele (SCHÉMA) v Oracle. Také pokud některý z neplatných balíčků není úspěšně zkompilován, vypíše název balíčku pro ruční kontrolu chyb.

Zkompilujte všechny neplatné balíčky v příkladu 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;
/

Příklad výstupu (pokud dojde k chybě):

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.

Viz také:

  • Jak vytvořit proceduru uvnitř balíčku v Oracle
  • Jak zkontrolovat počet neplatných objektů v Oracle
  • 20 užitečných příkladů prohlášení Oracle Insert
  1. mySQL Vrátí prvních 5 z každé kategorie

  2. MySql Single Table, vyberte posledních 7 dní a zahrňte prázdné řádky

  3. Příkaz SQL CASE

  4. Připojení Oracle k Amazon Aurora