使用db link执行存储过程
上一篇 / 下一篇 2006-06-20 00:00:00 / 个人分类:工作技术
众所周知,使用db link通常用来在本机检索远程数据库的表里的数据。那么是否可以使用db link来执行远程数据库里的存储过程呢?
我做了个测试,是完全可以的。
SQL> connect xxx/xxx @xxx
Connected to Oracle9i Enterprise Edition Release 9.2.0.7.0
Connected as XXX
SQL> drop procedure p_hsj_test_new;
Procedure dropped
SQL>
SQL> CREATE OR REPLACE PROCEDURE P_HSJ_TEST_NEW
2 (as_in in varchar2,
3 ai_rtd out number,
4 as_rmsg out varchar2)
5 IS
6 BEGIN
7 as_rmsg := 'return ' || as_in;
8 END;
9 /
Procedure created
SQL> connect xxx/xxx @xxx
Connected to Oracle9i Enterprise Edition Release 9.2.0.7.0
Connected as XXX
SQL> set serveroutput on;
SQL>
SQL> declare
2 li_rtd number;
3 ls_rmsg varchar2(200);
4 begin
5 p_hsj_test_new @his_database.us.oracle.com('hello',li_rtd,ls_rmsg);
6 dbms_output.put_line(ls_rmsg);
7 end;
8 /
return hello
PL/SQL procedure successfully completed
SQL>
对于函数来说,也是一样的。调用方法类似如下:
select function_name @db_link_name(inpar1,inparm2...) into var from dual;