我在数据库 A 中创建了一个存储过程 PROCA ,用户 USERA 并给出了 执行 USERB 的权限,我可以在用USERB登录时在数据库A中执行此存储过程。
现在我登录数据库 X 并创建了一个dblink Akink ,这个dblink连接到 数据库A与用户USERB。现在,当我使用以下语法执行存储过程时, 它执行没有任何错误,但无论存储过程中的DML操作是什么, 不承诺。
从Databse X调用存储过程的代码
declare
begin
USERA.PROCA@Alink();
COMMIT;
end;
请提出可能存在的问题。
答案 0 :(得分:0)
对于这种情况似乎没有好的解决方案 但这是对你的建议;试着用这个:
Exec dbms_utility.exec_ddl_statement@db_link('some ddl sql statment');
例如:
Exec dbms_utility.exec_ddl_statement@db_link('truncate table test_tab');