【发布时间】:2017-10-10 17:24:06
【问题描述】:
各位专家,
我们需要根据emp_id查找到期日,
create table emp_test (emp_id number, customer_due_date date)
/
create table dept_test (due_days number)
/
insert into emp_test values (1,sysdate)
/
insert into emp_test values (2,sysdate-1)
/
insert into emp_test values (3,sysdate-2)
/
insert into emp_test values (4,sysdate+1)
/
insert into emp_test values (5,sysdate+2)
/
insert into dept_test values(2)
/
commit
/
我的存储过程:
create or replace procedure test_proc(p_emp_id in emp_test.emp_id%type,p_due_date out date)
as
begin
select
(case
when trim(to_char(trunc(o.customer_due_date) - r,due_days, 'Day')) = 'Sunday' then trunc(o.customer_due_date)-r.due_days-2
when trim(to_char(trunc(o.customer_due_date) - r.due_days,
'Day')) = 'Saturday' then trunc(o.customer_due_date)-r.due_days-1
when trunc(o.customer_due_date) is null then trunc(sysdate) + 60
else trunc(o.customer_due_date) - r.due_days
end
) Due_date
into p_due_date
from
dept_test r,
emp_test o
where o.emp_id = p_emp_id;
p_due_date := to_char(p_due_date,'yyyy-mm-dd');
end;
我收到错误,因为“ORA-01861 文字与格式字符串不匹配”。
请建议,我们该如何解决这个错误?
谢谢。
【问题讨论】:
-
p_due_date := to_char(..)毫无意义。