【发布时间】:2017-01-22 12:51:29
【问题描述】:
我有一个 Oracle 数据库 12c Release 12.1.0.1.0 - 64 位生产数据库。我正在尝试在 Oracle Database 10g Express Edition Release 10.2.0.1.0 上调用一个过程 - 通过公共 dblink (DEVICE_201) 的产品数据库。当我尝试打电话时,我得到了 -
错误从第 1 行开始 -
BEGIN
proc_test@DEVICE_201;
END;
错误报告 -
ORA-06550:第 2 行,第 1 列:PLS-00352:无法访问另一个 数据库 'DEVICE_201'
ORA-06550:第 2 行,第 1 列:PLS-00201:标识符 必须声明“PROC_TEST@DEVICE_201”
ORA-06550:第 2 行,第 1 列:PL/SQL:语句被忽略
- 00000 - “第 %s 行,第 %s 列:\n%s”
*原因:通常是 PL/SQL 编译错误。 *行动:
这里是远程数据库上的表和过程定义:
CREATE TABLE "TEST"("TEST" VARCHAR2(200 BYTE))
-------------------------------------------
create or replace PROCEDURE PROC_TEST AS
BEGIN
INSERT INTO TEST (TEST) VALUES (SYSDATE);
COMMIT;
END PROC_TEST;
这就是我从本地数据库调用它的方式:
BEGIN
proc_test@DEVICE_201;
END;
我们有这个配置在其他位置工作,我已经在其中一个地方运行了这个测试代码。我认为这归结为权限问题,但据我所知,此位置的权限与其他位置相同。
【问题讨论】:
-
有一个关于在 10XE 上调用存储过程的错误。这适用于其他 10XE 数据库吗?
-
你能顺利运行
select * from dual@device_201;吗? -
我正在仔细检查数据库版本问题。是的,我可以运行 select * from dual@device_201;没有问题
-
@kevinsky 我设置了另一个环境,从 12c 调用 10XE proc。我犯了同样的错误。我开始认为这实际上可能是一个错误。你有关于那个错误的更多信息吗?我的搜索没有发现错误。
-
@user6656451 我安装了一个 10 XE 作为 Oracle 8i 和 Oracle 11g 之间的桥梁。我发现我无法通过数据库链接从 11 调用 10 上的存储过程。这是几年前的事了,但我相信这是一个不会修补的错误,因为它是 XE
标签: database oracle plsql dblink