我有一个Oracle 12c Release 12.1.0.1.0 -64位生产数据库。我试图在OracleDatabase10gExpress Edition发布版10.2.0.1.0上调用一个过程--通过公共dblink (DEVICE_201)的产品数据库。当我试着打电话时,我得到-
从行开始的错误:1在命令中-
BEGIN
proc_test@DEVICE_201;
END; 错误报告-
ORA-06550:第2行,第1栏:请-00352:无法访问另一个数据库“DEVICE_201” ORA-06550:第2行,第1列: PLS-00201:标识符'PROC_TEST@DEVICE_201‘必须声明 ORA-06550:第2行,第1列: PL/SQL:语句被忽略
*原因:通常是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;我们在其他地方运行了这个配置,我在其中一个地方运行了这个测试代码。我认为这可以归结为权限问题,但据我所见,该位置的权限与其他权限相同。
发布于 2016-11-04 06:56:18
在12c和10g之间使用db链接(10.2.0.1.0)时,我也遇到了同样的错误。然后找到本文:https://82star.wordpress.com/2011/09/06/clientserver-interoperability-support-id-207303-1/。有一行:“在11.1 (或更高)和10.2之间的数据库链接连接中,10g端必须在10.2.0.2 (或更高)处才能在这些版本之间使用PLSQL。有关更多细节,请参见注:4511371.8。”因此,我将10g升级到10.2.0.5.0,并能够通过dblink执行存储过程。
https://stackoverflow.com/questions/39495114
复制相似问题