sql >> Databasteknik >  >> RDS >> Oracle

Hur kompilerar man alla ogiltiga paket i Schema?

Nedan är ett exempel på PL/SQL-program för att kompilera alla ogiltiga paketspecifikationer och alla ogiltiga paketkroppar för den aktuella användaren (SCHEMA) i Oracle. Dessutom, om något av de ogiltiga paketen inte kompileras framgångsrikt kommer det att skriva ut paketnamnet för manuell felkontroll.

Kompilera alla ogiltiga paket i Oracle-exempel

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;
/

Exempel på utdata (om något fel):

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.

Se även:

  • Hur man skapar en procedur i ett paket i Oracle
  • Hur man kontrollerar antalet ogiltiga objekt i Oracle
  • 20 användbara exempel på Oracle Insert Statement
  1. PostgreSQL motsvarighet till Oracle bulk collect

  2. Varför och när ska jag använda SPARSE COLUMN? (SQL SERVER 2008)

  3. Hela processen för att återställa SQL Server-databas från kommandotolken

  4. Konvertera frågeresultat till en kommaseparerad lista i MariaDB