编译一过程时,出现PLS-00103错误:出现符号“SELECT”在需要下列之一时。过程里的SELECT语句是这样:CURSOR CUR_TJ_LCTJQK IS
SELECT KSBH00,KSMC00,ZLXMID,ZLXMJC,
JCXMID,JCXMMC,XMDW00,CDZ000,BGRQ00,CKZ000
FROM
(
SELECT A.BRID00,B.KSBH00,D.MC0000 KSMC00,B.ZLXMID,C.ZLXMJC,B.JCXMID,B.CDZ000,A.BGRQ00,B.CKZ000,
DECODE(B.JCXMMC,NULL,(SELECT XMMC00 FROM BM_JCXMDY WHERE JCXMID=B.JCXMID),B.JCXMMC) JCXMMC,
DECODE(B.XMDW00,NULL,(SELECT DW0000 FROM BM_JCXMDY WHERE JCXMID=B.JCXMID),B.XMDW00) XMDW00
FROM TJ_BRXXB0 A,TJ_TJBG00 B,BM_ZLZD00 C,TJ_KSLB00 D
WHERE A.GHID00=B.GHID00 AND B.ZLXMID=C.ZLXMID AND C.LBBH00=4
AND A.SFTJ00='Y' AND B.KSBH00=D.KSBH00
AND A.BRID00=PBRID00 AND A.BGRQ00=PTIME
ORDER BY KSBH00,ZLXMID,JCXMID
);
如果单独查询没问题,可放在过程里就出错。不明白什么原因?我用的是ORACLE8I这有关系吗?
SELECT KSBH00,KSMC00,ZLXMID,ZLXMJC,
JCXMID,JCXMMC,XMDW00,CDZ000,BGRQ00,CKZ000
FROM
(
SELECT A.BRID00,B.KSBH00,D.MC0000 KSMC00,B.ZLXMID,C.ZLXMJC,B.JCXMID,B.CDZ000,A.BGRQ00,B.CKZ000,
DECODE(B.JCXMMC,NULL,(SELECT XMMC00 FROM BM_JCXMDY WHERE JCXMID=B.JCXMID),B.JCXMMC) JCXMMC,
DECODE(B.XMDW00,NULL,(SELECT DW0000 FROM BM_JCXMDY WHERE JCXMID=B.JCXMID),B.XMDW00) XMDW00
FROM TJ_BRXXB0 A,TJ_TJBG00 B,BM_ZLZD00 C,TJ_KSLB00 D
WHERE A.GHID00=B.GHID00 AND B.ZLXMID=C.ZLXMID AND C.LBBH00=4
AND A.SFTJ00='Y' AND B.KSBH00=D.KSBH00
AND A.BRID00=PBRID00 AND A.BGRQ00=PTIME
ORDER BY KSBH00,ZLXMID,JCXMID
);
如果单独查询没问题,可放在过程里就出错。不明白什么原因?我用的是ORACLE8I这有关系吗?
试试:
SELECT KSBH00,
KSMC00,
ZLXMID,
ZLXMJC,
JCXMID,
JCXMMC,
XMDW00,
CDZ000,
BGRQ00,
CKZ000
FROM (SELECT A.BRID00,
B.KSBH00,
D.MC0000 KSMC00,
B.ZLXMID,
C.ZLXMJC,
B.JCXMID,
B.CDZ000,
A.BGRQ00,
B.CKZ000,
DECODE(B.JCXMMC,
NULL,
(SELECT XMMC00 FROM BM_JCXMDY WHERE JCXMID = B.JCXMID),
B.JCXMMC) JCXMMC,
DECODE(B.XMDW00,
NULL,
(SELECT DW0000 FROM BM_JCXMDY WHERE JCXMID = B.JCXMID),
B.XMDW00) XMDW00
FROM TJ_BRXXB0 A,
TJ_TJBG00 B,
BM_ZLZD00 C,
TJ_KSLB00 D
WHERE A.GHID00 = B.GHID00
AND B.ZLXMID = C.ZLXMID
AND C.LBBH00 = 4
AND A.SFTJ00 = 'Y'
AND B.KSBH00 = D.KSBH00
AND A.BRID00 = PBRID00
AND A.BGRQ00 = PTIME)
ORDER BY KSBH00,
ZLXMID,
JCXMID;
你把CURSOR 放哪了,要放到begin前,is后