![在远程数据库上创建表](https://linux22.com/image/510595/%E5%9C%A8%E8%BF%9C%E7%A8%8B%E6%95%B0%E6%8D%AE%E5%BA%93%E4%B8%8A%E5%88%9B%E5%BB%BA%E8%A1%A8.png)
我使用数据库链接创建了一个数据库链接。
create public database link REMOTEDB connect to REMOTEUSER identified by REMOTEPWD using 'REMOTEDB';
然后我在远程数据库中创建一个表,
create table MYTABLE@REMOTEDB (name varchar2(20)));
它说,ORA-02021 DDL operations are not allowed on| a remote database..
这是否不会产生任何成本,或者我只是缺少一些创建权限?
答案1
通过数据库链接创建表看起来是个很糟糕的主意。我看不出这样做有什么理由,因此我认为这行不通。
答案2
您可以远程调用DBMS_SQL来创建表
declare
v_cursor NUMBER;
v_ind number;
begin
v_cursor := dbms_sql.open_cursor@dblink;
dbms_sql.parse@dblink(v_cursor, 'create table t_gm_x (id number)', dbms_sql.native);
v_ind := dbms_sql.execute@dblink( v_cursor );
end;
/