Uzak veritabanı üzerinde database link ile DDL komutu çalıştırılması

Uzak veritabanı üzerinde database link ile direkt olarak DDL komutu çalıştırılamaz. Çalıştırıldığı takdirde aşağıdaki gibi hataya sebep olacaktır.

ORA-02021: DDL operations are not allowed on a remote database.

Bunun için dbms_utility.exec_ddl_statement prosedürünün kullanılması gerekiyor. Bu prosedür ile uzak veritabanında herhangi bir DDL komutu çalıştırılabilir. Bu sayede tüm işlemlerimizi tek bir noktadan yapabiliriz.

Örnek kullanım :

SQL> exec dbms_utility.exec_ddl_statement@DB_LINK('TRUNCATE TABLE KULLANICI.TABLO_ADI');

Yukarıdaki örnekte DB_LINK ile veritabanı linki belirtiliyor. Sonrasında parantez ve tek tırnak içinde çalıştıracak DDL komutu veriliyor. 

Benzer şekilde aşağıdaki gibi tablo oluşturmak da mümkündür.

SQL>  exec dbms_utility.exec_ddl_statement@DB_LINK('create table t1 (id number)');

Bu şekilde uzak veritabanında , veritabanı linki üzerinden DDL komutları çalıştırmak mümkündür.

Loading

Leave Your Comment