【发布时间】:2018-11-27 20:52:30
【问题描述】:
我可以调用 PL/SQL 过程并通过真实的数据库链接进行打包,但似乎无法通过环回数据库链接(引用同一数据库中的模式的数据库链接,用于测试目的),在两个不同的数据库中。
为了通过环回数据库链接执行远程 plsql 包/过程/函数,是否需要一些技巧?
本地数据库(foo):
CREATE DATABASE LINK MATTHEW@INST1 CONNECT TO bar IDENTIFIED BY password USING 'MATTHEW';
-- this works fine, as well as selecting from other tables
SELECT * FROM dual@MATTHEW@INST1;
远程数据库(条形模式):
创建包 test_pkg 是 程序 test_proc; 结尾; / 创建包体 test_pkg 是 程序 test_proc 是 开始 dbms_output.put_line('你好'); 结尾; 结尾; / 创建过程 test_proc 是 开始 dbms_output.put_line('你好'); 结尾; / 创建或替换函数 ff 返回编号 是 开始 返回 55; 结尾; /本地数据库(foo)
BEGIN
test_proc@MATTHEW@INST1;
END;
/
错误报告: ORA-06550:第 2 行,第 5 列: PLS-00201:必须声明标识符“TEST_PROC@MATTHEW@INST1”
BEGIN
test_pkg.test_proc@MATTHEW@INST1;
END;
/
错误报告: ORA-06550:第 2 行,第 5 列: PLS-00201:必须声明标识符“TEST_PKG.TEST_PROC@MATTHEW@INST1”
select ff@MATTHEW@INST1 from dual;
ORA-00904:“FF”:标识符无效
00904. 00000 - “%s:无效标识符”
*原因:
*行动:
【问题讨论】: