使用db link执行存储过程

来源:互联网 发布:最后的武士 长城 知乎 编辑:程序博客网 时间:2024/05/17 07:22

使用db link执行存储过程

上一篇 /下一篇  2006-06-20 00:00:00 / 个人分类:工作技术

查看( 627 ) /评论( 2 ) / 评分( 5 / 0 )

众所周知,使用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;


原创粉丝点击