ORA-00936:缺失表达式

yakun348664454 2013-10-07 11:45:55
CREATE OR REPLACE PROCEDURE "SCOTT"."PROC_GETPAYDETAIL"
(
dtm varchar2,
resultset out sys_refcursor
)
as
begin
open resultset for select
te.empid,
te.ename,
te.basepay,
case
when (select sum(hours*20) from overtime o1 where o1.empid=te.id and to_char(o1.overtimedate,''yyyy-mm''):=dtm) is null then 0
else (select sum(hours*20) from overtime o2 where o2.empid=te.id and to_char(o2.overtimedate,''yyyy-mm''):=dtm)
end overtimepay,

case
when (select sum(days*case when p1.personalLeaveType=0 then 100 else 20 end) from personalLeave p1 where p1.empid=te.id
and to_char(p1.personalleavetime,''yyyy-mm''):=dtm) is null then 0
else (select sum(days*case when p2.personalleavetype=0 then 100 else 20 end) from personalLeave p2 where p2.empid=te.id
and to_char(p2.personalleavetime,''yyyy-mm''):=dtm)
end personalleavePay,

case
when (select sum(days*150) from absence a1 where a1.empid=te.id and to_char(a1.absenceTime,''yyyy-mm''):=dtm) is null then 0
else (select sum(days*150) from absence a2 where a2.empid=te.id and to_char(a2.absenceTime,''yyyy-mm''):=dtm)
end absencePay
from ta_emp te using dtm,dtm,dtm,dtm,dtm,dtm;
end;
/





Connected to Oracle Database 10g Enterprise Edition Release 10.2.0.1.0
Connected as scott

SQL>

Warning: Procedure created with compilation errors

SQL> show error
Errors for PROCEDURE SCOTT.PROC_GETPAYDETAIL:

LINE/COL ERROR
-------- -----------------------------
13/107 PL/SQL: ORA-00936: 缺失表达式
8/27 PL/SQL: SQL Statement ignored

请各位大神帮帮我,小弟是oracle初学者,谢谢了
SQL>
...全文
757 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
blank7 2013-10-09
  • 打赏
  • 举报
回复
引用 2 楼 u012353948 的回复:
dtm是我用来在java中进行传值的,通过日期来查询一些数据
你的参数已经通过存储过程调用传进来了. 另外
to_char(o1.overtimedate,''yyyy-mm'')
to_char(o1.overtimedate,'yyyy-mm')
pobaby 2013-10-09
  • 打赏
  • 举报
回复
CREATE OR REPLACE PROCEDURE "SCOTT"."PROC_GETPAYDETAIL" ( dtm varchar2, resultset out sys_refcursor ) 这个头你就写错了。语法有问题。 类型 分号
yakun348664454 2013-10-07
  • 打赏
  • 举报
回复
dtm是我用来在java中进行传值的,通过日期来查询一些数据
forgetsam 2013-10-07
  • 打赏
  • 举报
回复
:= 是用来赋值的 把你用来表示判断的地方全换成 =

17,086

社区成员

发帖
与我相关
我的任务
社区描述
Oracle开发相关技术讨论
社区管理员
  • 开发
  • Lucifer三思而后行
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧