Veri tabanında tüm constraint ve triggerlar invalide düştü. Tüm bunları nasıl kolayca enable yapabilirim?
comments
1 references
// Comments are closed.
Veri tabanında tüm constraint ve triggerlar invalide düştü. Tüm bunları nasıl kolayca enable yapabilirim?
// Comments are closed.
Invalid ayrı birşeydir, disable ayrı birşeydir; valid ayrıdır, enable ayrıdır.
Eğer siz disable olan contraint’lerinizi ve trigger’larını enable etmek istiyorsanız aşağıdaki komutu kullanabilirsiniz.
aşağıdaki sql ile de tüm invalid objelerinizi derleyebilirsiniz. hata yoksa valid duruma geçer.
SET SERVEROUTPUT ON SIZE 1000000 BEGIN FOR cur_rec IN ( SELECT 'ALTER ' || REPLACE (OBJECT_TYPE, 'PACKAGE BODY', 'PACKAGE') || ' ' || OWNER || '.' || OBJECT_NAME || ' COMPILE' sqlsmt FROM dba_objects WHERE STATUS = 'INVALID' AND object_type NOT IN ('SYNONYM') AND owner NOT LIKE 'TC%' ORDER BY owner) LOOP BEGIN EXECUTE IMMEDIATE cur_rec.sqlsmt; EXCEPTION WHEN OTHERS THEN DBMS_OUTPUT.put_line ('Error on SQL: ' || cur_rec.sqlsmt || SUBSTR (SQLERRM, 1, 120)); CONTINUE; END; END LOOP; END; /