【发布时间】:2014-04-04 12:55:01
【问题描述】:
我一直在比较 plsql 编程中的两个日期。
我有 2 个存储过程。第一个存储过程将日期列作为OUT 参数返回给我。
我将第一个输出参数作为第二个存储过程的输入参数传递。
但我的查询没有返回正确的值。
存储过程#1:
PROCEDURE SP_FIRST_COMPLETE(TASK_ID IN VARCHAR2, FIRST_COMPLETE_DT OUT DATE)
IS
...
BEGIN
...
...
DBMS_OUTPUT.PUTLINE('First completed dt is:= '||FIRST_COMPLETE_DT);
.....
end;
存储过程#2:
PROCEDURE SP_NOT_FIRST_COMPLETE(TASK_ID IN VARCHAR2, FIRST_COMPLETE_DT IN DATE, FIRST_COMPLETE_DT1 OUT DATE)
IS
....
BEGIN
DBMS_OUTPUT.PUTLINE('First completed dt is:= '||FIRST_COMPLETE_DT);
FOR R_ROW IN (SELECT ........ FROM .... WHERE EVENT_DT > FIRST_COMPLETE_DT ORDER BY EVENT_DT
LOOP
DBMS_OUTPUT.PUTLINE('First completed dt is:= '||FIRST_COMPLETE_DT||' QUERY RESULT DATE :='||R_ROW.EVENT_DT);
.....
END;
1ST STORED PROC OUTPUT
First completed dt is:= 14-FEB-14
2ND STORED PROC OUTPUT
First completed dt is:= 14-FEB-14
First completed dt is:= 14-FEB-14 QUERY RESULT DATE := 28-FEB-12
当我在 SQL 中运行查询时,它会给出正确的结果。
select ... from.... where event_dt > '18-FEB-14' order by event_dt;
请在这方面提供帮助。
谢谢 萨尔玛
【问题讨论】:
-
我只能想到一种可能发生这种情况的方法,但我想确认一下。 EVENT_DT 声明为什么类型?
标签: sql stored-procedures plsql plsqldeveloper stored-functions