在存储过程是否可以通过DB_Link调用另外一个数据库的存储过程
tchx 2009-12-24 05:46:38 我想在存储过程通过已经建立好的DBLINK 去调用远端数据库的存储过程?
存储过程应该如何写?
CREATE OR REPLACE PROCEDURE p_get_bal_detail
(
in_serviceid IN varchar2,-- 操作码
in_OpID IN VARCHAR2,-- 操作员代码
in_contractcode IN VARCHAR2,-- 合同编号,
In_TRANSACTIONDATE IN VARCHAR2,--赎回日期(某个开放日)
in_mgr_type IN VARCHAR2,-- 赎回申请 I 新增,U修改
in_appsheetserialno IN VARCHAR2,-- 如是 U,则非空
rc1 OUT bssys.tp_cursor,
rc2 OUT bssys.tp_cursor
) IS
v_code varchar2(200);
v_msg varchar2(2000);
n_sumvol number;
n_balvol number;
n_avlvol number;
BEGIN
OPEN rc1 FOR
SELECT 0 AS errorcode, '查询成功'
FROM dual;
OPEN rc2 FOR
select test_user.p_hzsg_get_redeembal@TESTDB(in_serviceid,in_OpID,in_contractcode,
In_TRANSACTIONDATE,
in_mgr_type ,
in_appsheetserialno,
v_code,
v_msg,
n_sumvol,
n_balvol,
n_avlvol)
FROM DUAL;
--SELECT * FROM test_user.FUNDINFO@TESTDB;
END;
我按上面的写,通不过编译。
p_hzsg_get_redeembal为存储过程名字
test_user 为远端数据库名字
testDB 为databaseLink
SELECT * FROM test_user.FUNDINFO@TESTDB;此语句能查出结果。
证明DatabaseLink是好的。