ora00972 标识符过长 如何解决
SELECTA.GSXX01,A.GSPHD01,A.GHHT01,A.BM01,A.CK01,A.WLDW01,A.HZFS01,A.GSPHD02,A.GSPHD03...
SELECT A.GSXX01,A.GSPHD01, A.GHHT01, A.BM01, A.CK01, A.WLDW01, A.HZFS01,
A.GSPHD02, A.GSPHD03,A.GSPHD04, A.GSPHD05,A.DHSL,A.TGSL,A.PDSL, A.GSPHD06,A.GSPHD07,C.CK02,
A.FHSL, A.FLAG,A.GSPHD08,A.GSPHD09,A.GSPHD10, A.GSPHD11,
(SELECT BM.BM02 FROM BM WHERE BM.BM01 = A.XSBM01) YHBM,
(SELECT BM.BM02 FROM BM WHERE BM.BM01 = A.BM01) CGBM,
B.GSXX01, B.GSPHD01, B.DFGSXX01, B.GHHT01, B.BM01,
B.CK01, B.WLDW01, B.HZFS01, B.XSDW01, B.DHSL,
B.TGSL, B.PDSL, B.FHSL, B.CGXY02," +
D.GSPHD01, D.DFGSXX01, D.SPXX01, D.DHSL, D.TGSL, D.PDSL,
D.BZ, D.BZHL, D.FHSL, D.XSJG, D.CGXY02, D.CK01,
S.SPXX02, S.SPXX04, S.SPFL02, S.PPB02,
(SELECT CPFL01||','||CPFL02 FROM SPGNSM WHERE SPXX01=S.SPXX01) CPFL02,
(SELECT SCCJ02 FROM SCCJ WHERE SCCJ01=S.SCCJ01) SCCJ02,
(SELECT SPPZ02 FROM SPPZ WHERE SPPZ01 = S.SPPZ01) SPPZ02,
(SELECT SPHS02 FROM SPHS WHERE SPHS01 = S.SPHS01) SPHS02,
(SELECT SPXH02 FROM SPXH WHERE SPFL01 = S.SPFL01 and SPXH01= S.SPXX34 and PPB01=S.PPB01) SPXH02
FROM GSPHD A, GSPHDITEM B, CK C, GSPHDSP D, SPXX S
WHERE A.GSXX01 = B.GSXX01 AND A.GSPHD01 = B.GSPHD01 AND A.CK01 = C.CK01 AND B.SPXX01 = S.SPXX01
A.GSPHD01 = D.GSPHD01 展开
A.GSPHD02, A.GSPHD03,A.GSPHD04, A.GSPHD05,A.DHSL,A.TGSL,A.PDSL, A.GSPHD06,A.GSPHD07,C.CK02,
A.FHSL, A.FLAG,A.GSPHD08,A.GSPHD09,A.GSPHD10, A.GSPHD11,
(SELECT BM.BM02 FROM BM WHERE BM.BM01 = A.XSBM01) YHBM,
(SELECT BM.BM02 FROM BM WHERE BM.BM01 = A.BM01) CGBM,
B.GSXX01, B.GSPHD01, B.DFGSXX01, B.GHHT01, B.BM01,
B.CK01, B.WLDW01, B.HZFS01, B.XSDW01, B.DHSL,
B.TGSL, B.PDSL, B.FHSL, B.CGXY02," +
D.GSPHD01, D.DFGSXX01, D.SPXX01, D.DHSL, D.TGSL, D.PDSL,
D.BZ, D.BZHL, D.FHSL, D.XSJG, D.CGXY02, D.CK01,
S.SPXX02, S.SPXX04, S.SPFL02, S.PPB02,
(SELECT CPFL01||','||CPFL02 FROM SPGNSM WHERE SPXX01=S.SPXX01) CPFL02,
(SELECT SCCJ02 FROM SCCJ WHERE SCCJ01=S.SCCJ01) SCCJ02,
(SELECT SPPZ02 FROM SPPZ WHERE SPPZ01 = S.SPPZ01) SPPZ02,
(SELECT SPHS02 FROM SPHS WHERE SPHS01 = S.SPHS01) SPHS02,
(SELECT SPXH02 FROM SPXH WHERE SPFL01 = S.SPFL01 and SPXH01= S.SPXX34 and PPB01=S.PPB01) SPXH02
FROM GSPHD A, GSPHDITEM B, CK C, GSPHDSP D, SPXX S
WHERE A.GSXX01 = B.GSXX01 AND A.GSPHD01 = B.GSPHD01 AND A.CK01 = C.CK01 AND B.SPXX01 = S.SPXX01
A.GSPHD01 = D.GSPHD01 展开
3个回答
展开全部
规定不能超过30个字符,你应该可以缩短这个长度的。
oracle10G对于表名的长度限制是30个字节,其他版本未知,有无设置未知。
表名偶尔超过30结果不能创建,提示标示符过长。小于等于30字节就好了。
这是没问题的。
create table abcdefghijklmnopqrstuvwxyz1234(abc varchar2(10));
这样就会提示标示符过长。
create table abcdefghijklmnopqrstuvwxyz12345(abc varchar2(10));
展开全部
B.TGSL, B.PDSL, B.FHSL, B.CGXY02," + --这点写错了多了双引号和加号
where条件的最后也少了个 AND
where条件的最后也少了个 AND
追问
恩恩,昨天解决了啊,3Q
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
订单格式有误
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询