search
Giriş
Merhabalar arkadaşlar, Sitemizi programlama ile ilgilenen bütün arkadaşlarımızın Türkçe içerik konusunda çektiği sıkıntılar düşünülerek soru/cevap şeklinde bir etkileşimde bulunabilmesi için kurduk. Umuyoruz hepimiz için güzel bir deneyim olur. Hasscript Ekibi
0 oy
452 gösterim
Veri tabanında tüm constraint ve triggerlar invalide düştü. Tüm bunları nasıl kolayca enable yapabilirim?
Veri Tabanı kategorisinde 2.0k puan
düzenledi

1 cevap

3 oy

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. 

alter trigger TRIGER_ADI  enable;

alter table  TABLO_ADI enable constraint CONSTRAINT_ADI;

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;

/
604 puan

İlgili sorular

0 oy
1 cevap 1.4K gösterim
1.4K gösterim
Selam Elimde var olan bir tabloya yeni alanlar ve commentler ekleyeceğim. Bunu minimum komutla nasıl yaparım Oracle'da.
5 Şubat 2019 Veri Tabanı kategorisinde tolgacelik.art 2.0k puan sordu
1 oy
1 cevap 783 gösterim
783 gösterim
Oracle veritabanında invalid object'lerin her birine tek tek compile demek toplu olarak nasıl compile edebilirim?
10 Ocak 2018 Veri Tabanı kategorisinde buzel 604 puan sordu
0 oy
1 cevap 394 gösterim
394 gösterim
Oracle veri tabanında bazı tabloların PrimaryKey'leri ve bununla bağlantılı ForegeinKey'leriin disabled olduğunu gördüm. listesini çekmeye çalıştım şu query ile; select * from user_constraints t where t.status <> 'ENABLED' and t.CONSTRAINT_TYPE = 'R'; ancak tek ... disabled-invalid gözüküyor. Bir hata almıştım şöyle ORA-02270: bu sütun listesine karşılık gelen bnezersiz veya birincil anahtar yok"
30 Nisan 2018 Veri Tabanı kategorisinde tolgacelik.art 2.0k puan sordu
0 oy
1 cevap 987 gösterim
987 gösterim
Bir tabloda birden fazla alanı drop edeceğim. Ayrı ayrı drop scripti yerine tek bir drop yazarak alan isimlerini verip drop etmek mümkün mü? ALTER TABLE table_name DROP COLUMN column_name; bunun yerine ALTER TABLE table_name DROP( column_name_1, column_name_2 ... etc ); gibi bir script yazabilir miyiz.
6 Şubat 2019 Veri Tabanı kategorisinde tolgacelik.art 2.0k puan sordu
0 oy
1 cevap 702 gösterim
702 gösterim
Oracle veri tabanında "deterministic" diye bir şey gördüm. Bu ne işe yarıyor bilen var mı? Nasıl kullanılır? Avantajı -dezavantajı nedir?
8 Mayıs 2018 Veri Tabanı kategorisinde tolgacelik.art 2.0k puan sordu