通过oracle dblink,怎么执行远程数据库的存储过程。或者说可以执行吗?怎么弄?
2个回答
展开全部
不行,弄不了。
追问
只能查询数据,不能对数据进行修改吗?
追答
dblink可以select,insert ,update,delete,前提是dblink的用户有这些权限,但是不能做ddl操作,如果存储过程里只是合法的dml操作也是可以通过dblink执行存储过程的。
给个测试例子:
远程服务器上:
create table test_db_link(id number,name varchar2(30));
create procedure p_test_db_link(vn_id number,vc_name varchar)
is
begin
insert into test_db_link values(vn_id,vc_name);
commit;
end;
begin
p_test_db_link(1,'a');
end;
本地创建dblink:
create database link TEST
connect to scott identified by tiger
using 'test';
--通过dblink删除表
delete from test_db_link@TEST
where id=1;
commit;
--通过dblink执行存储过程插入表
begin
p_test_db_link@TEST(2,'b');
end;
--此时查询结果
select * from test_db_link@TEST;
ID NAME
2 b
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询