如果我想在A库上操作,把A库上的dba_objects弄到B库上。
SQL> create table test@dblink_to_B as select * from dba_objects;
create table test@dblink_to_B as select * from dba_objects
*
第 1 行出现错误:
ORA-02021: 不允许对远程数据库进行 DDL 操作
要想完成上面的需求,这样做
SQL> exec dbms_utility.EXEC_DDL_STATEMENT@db_link_developer('create table test as select * from dba_objects@dblink_to_A');
要想在A库上操作,删除B库上的test
SQL> create table test@dblink_to_B as select * from dba_objects;
create table test@dblink_to_B as select * from dba_objects
*
第 1 行出现错误:
ORA-02021: 不允许对远程数据库进行 DDL 操作
要想完成上面的需求,这样做
SQL> exec dbms_utility.EXEC_DDL_STATEMENT@db_link_developer('create table test as select * from dba_objects@dblink_to_A');
要想在A库上操作,删除B库上的test
SQL> exec dbms_utility.EXEC_DDL_STATEMENT@dblink_to_B('drop table test');
当然你可以在远程数据库上建立一个存储过程,调用存储解决,不过没有这个方法简单。