我有这样的程序:
create or replace Procedure return_rows_LECTURE_BY_DATE (in_date in date, out_cursor OUT SYS_REFCURSOR) As
Begin
OPEN out_cursor for
select *
FROM COURSE_LECTURE
WHERE LECT_DATE_TIME_START >= to_timestamp(in_date, 'dd-mm-yyyy')
and LECT_DATE_TIME_START < to_timestamp(in_date+1, 'dd-mm-yyyy')
ORDER BY LECT_DATE_TIME_START;
End;输入:日期,输出:此日期的讲座。表(视图)中的日期是时间戳。
我想做这个手术。我试过这个:
declare
k SYS_REFCURSOR;
--t DATE:= to_date('2010-12-14:09:56:53', 'YYYY-MM-DD:HH24:MI:SS') ;
res COURSE_LECTURE%rowtype;
begin
return_rows_LECTURE_BY_DATE(to_date('2010-12-14', 'YYYY-MM-DD'),k);
loop
FETCH k into res;
Exit when k%notFound;
DBMS_OUTPUT.PUT_LINE(res.COURSE_NAME );
end loop;
end;但我发现了一个错误:
错误报告- ORA-01830:在转换整个输入字符串ORA-06512: at "HR.RETURN_ROWS_LECTURE_BY_DATE",第4行或-06512:在第6行01830处,日期格式图片结束。00000 -“日期格式图片在转换整个输入字符串之前结束”
发布于 2014-07-25 08:14:33
问题在于语句to_timestamp(in_date,‘dd yyyy’)提供的格式太短,您可以在没有任何格式条件to_timestamp(in_date)的情况下使用它。
https://stackoverflow.com/questions/24950858
复制相似问题