package失效,編譯失效對象

DECLARE
  CURSOR cur IS
    SELECT *
      FROM all_objects
     WHERE status <> 'VALID'
       AND object_name LIKE 'CUX%';
  l_sql VARCHAR2(2000);
BEGIN
  FOR rec IN cur LOOP
    IF rec.object_type = 'PACKAGE BODY' THEN
      l_sql := 'alter package ' || rec.object_name || ' compile body';
    ELSE
      l_sql := 'alter ' || rec.object_type || rec.object_name || ' compile';
    END IF;
    dbms_output.put_line(l_sql);
    BEGIN
      EXECUTE IMMEDIATE l_sql;
    EXCEPTION
      WHEN OTHERS THEN
        dbms_output.put_line(rec.object_name || ' ERROR');
    END;
  END LOOP;
END;
發佈了64 篇原創文章 · 獲贊 4 · 訪問量 5萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章