DBLINK后报错:ORA-00904: "A5"."MENUID_0": invalid identifier
dbdao吧
全部回复
仅看楼主
level 3
yyj1827 楼主
求指点,利用dblink创建同义词,
使用子句:START WITH CONNECT BY PRIOR
报错:
ORA-00904: "A5"."MENUID_0": invalid identifier
ORA-02063: 紧接着 line (起自 GZYJ_DSJ_232)。
已经尝试在源库重新创建了表,目标库重新编译同义词,错误依然。
感谢。
语句在源库没有问题:
create or replace synonym S_FRAMEWORK_FUNCTION for S_FRAMEWORK_FUNCTION@GZYJ_DSJ_232;
create or replace synonym S_FRAMEWORK_MENU for S_FRAMEWORK_MENU@GZYJ_DSJ_232;
SQL> conn gzyj_dsj/*@a_syj;
Connected to Oracle Database 10g Enterprise Edition Release 10.2.0.5.0
Connected as GZYJ_DSJ@A_SYJ
SQL> SELECT 1
2 FROM S_FRAMEWORK_MENU A
3 LEFT JOIN S_FRAMEWORK_FUNCTION B
4 ON A.FUNCTIONID = B.FUNCTIONID
5 START WITH A.MENUID = '1'
6 CONNECT BY PRIOR A.PARENTMENU = A.MENUID;
1
----------
1
SQL> SELECT 1
2 FROM S_FRAMEWORK_MENU A
3 LEFT JOIN S_FRAMEWORK_FUNCTION B
4 ON A.FUNCTIONID = B.FUNCTIONID
5 WHERE ROWNUM<2;
1
----------
1
SQL> desc S_FRAMEWORK_MENU;
Name Type Nullable Default Comments
--------------- ------------- -------- ------- --------
MENUID VARCHAR2(50)
PARENTMENU VARCHAR2(50) Y
MENUNAME VARCHAR2(50)
FUNCTIONID VARCHAR2(50) Y
SYS_RESERVER1 VARCHAR2(250) Y
SYS_RESERVER2 VARCHAR2(50) Y
SYS_RESERVER3 VARCHAR2(50) Y
SYS_RESERVER4 VARCHAR2(50) Y
SYS_RESERVER5 VARCHAR2(50) Y
SYS_RESERVER6 VARCHAR2(50) Y
SYS_RESERVER7 VARCHAR2(50) Y
SYS_RESERVER8 VARCHAR2(50) Y
SYS_RESERVER9 VARCHAR2(50) Y
SYS_RESERVER10 VARCHAR2(50) Y
DEPARTMENTCODE VARCHAR2(50) Y
CREATOR VARCHAR2(50) Y
SECURITYGRADE VARCHAR2(50) Y
CREATEDTIME DATE Y
LASTUPDATEDBY VARCHAR2(50) Y
LASTUPDATEDTIME DATE Y
REFRESHTIME DATE Y
UPLOADFLAG VARCHAR2(50) Y
DOWNLOADFLAG VARCHAR2(50) Y
DELETEFLAG VARCHAR2(50) Y
SQL> desc S_FRAMEWORK_FUNCTION;
Name Type Nullable Default Comments
--------------- ------------- -------- ------- --------
FUNCTIONID VARCHAR2(50)
ISQUERYFUNCTION VARCHAR2(50) Y
ENTRYUI VARCHAR2(50) Y
PARENTID VARCHAR2(50) Y
FUNCTIONNAME VARCHAR2(50) Y
ACTIONTYPE VARCHAR2(200) Y
MASK VARCHAR2(50) Y
DEPTGROUP VARCHAR2(50) Y
SYS_RESERVER1 VARCHAR2(50) Y
SYS_RESERVER2 VARCHAR2(50) Y
SYS_RESERVER3 VARCHAR2(3) Y
SYS_RESERVER4 VARCHAR2(50) Y
SYS_RESERVER5 VARCHAR2(50) Y
SYS_RESERVER6 VARCHAR2(50) Y
SYS_RESERVER7 VARCHAR2(50) Y
SYS_RESERVER8 VARCHAR2(50) Y
SYS_RESERVER9 VARCHAR2(50) Y
SYS_RESERVER10 VARCHAR2(50) Y
DEPARTMENTCODE VARCHAR2(50) Y
CREATOR VARCHAR2(50) Y
SECURITYGRADE VARCHAR2(50) Y
CREATEDTIME DATE Y
LASTUPDATEDBY VARCHAR2(50) Y
LASTUPDATEDTIME DATE Y
REFRESHTIME DATE Y
UPLOADFLAG VARCHAR2(50) Y
DOWNLOADFLAG VARCHAR2(50) Y
DELETEFLAG VARCHAR2(50) Y
语句在目标库报错:
SQL> conn wsjg2/*@wsjg;
Connected to Oracle Database 11g Enterprise Edition Release 11.2.0.4.0
Connected as wsjg2@WSJG
SQL>
SQL> SELECT 1
2 FROM S_FRAMEWORK_MENU A
3 LEFT JOIN S_FRAMEWORK_FUNCTION B
4 ON A.FUNCTIONID = B.FUNCTIONID
5 START WITH A.MENUID = '1'
6 CONNECT BY PRIOR A.PARENTMENU = A.MENUID;
SELECT 1
FROM S_FRAMEWORK_MENU A
LEFT JOIN S_FRAMEWORK_FUNCTION B
ON A.FUNCTIONID = B.FUNCTIONID
START WITH A.MENUID = '1'
CONNECT BY PRIOR A.PARENTMENU = A.MENUID
ORA-00904: "A5"."MENUID_0": invalid identifier
ORA-02063: 紧接着 line (起自 GZYJ_DSJ_232)
SQL> SELECT 1
2 FROM S_FRAMEWORK_MENU A
3 LEFT JOIN S_FRAMEWORK_FUNCTION B
4 ON A.FUNCTIONID = B.FUNCTIONID
5 WHERE ROWNUM<2;
1
----------
1
SQL>
2016年09月06日 08点09分 1
1