编译一过程时,出现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这有关系吗?
解决方案 »
- oracle 创建一个包,很简单就一个变量
- 如何改写查询中的or条件
- 请教一个oracle存储问题
- ?求oracle游标介绍及使用方法举例?
- oracle问题。急!!
- 请教ORACLE导出的文件格式是DMP类型的,请问如何转化成DBF格式的呢?
- 新手问题
- 复合语句的问题?select * from user where id not in (select top 15 id from user order by id) order by id "
- rman备份表空间>删除表空间>重建表空间 无法恢复表空间,为什么?
- VERTICA数据库中的字符长度问题
- ORACLE数据库内部方案的互导问题
- 求一份ORACLE所有权限的中文列表
CREATE OR REPLACE PROCEDURE SP_TJ_LCTJQK
(
PBRID00 IN TJ_BRXXB0.BRID00%TYPE,
PFLAG IN NUMBER,
PTIME IN VARCHAR,
PLB0000 IN NUMBER --1,2,3,4,5
)
AS
这个问题
先去掉
DECODE(B.XMDW00,NULL,(SELECT DW0000 FROM BM_JCXMDY WHERE JCXMID=B.JCXMID),B.XMDW00)