【发布时间】:2013-08-29 15:15:30
【问题描述】:
这可能是一个愚蠢的问题,但我找不到在动态调用的 PL/SQL 过程中传递“DATE”类型的解决方案。我需要的是在被调用的过程中传递日期和时间部分:
create or replace
PROCEDURE DATE_TIME_TEST ( dte_Date_IN IN DATE )
IS
vch_SQL_Stmnt VARCHAR2(2000);
BEGIN
DBMS_OUTPUT.PUT_LINE('Date is :'||TO_CHAR(dte_Date_IN, 'DD-Mon-YYYY HH24:MI:SS'));
END;
/
declare
v_sql varchar2(2000);
begin
v_sql := 'begin DATE_TIME_TEST( dte_Date_IN => '''||
sysdate || ''''|| '); end;';
execute immediate v_sql;
end;
/
这里的输出是 - 日期是 :27-Aug-2013 00:00:00。
我希望它是 - 日期是:2013 年 8 月 27 日 13:01:09
【问题讨论】:
-
dte_Date_IN 可能没有时间信息。尝试 dbms_output(dte_Date_IN)。
-
确实有时间,如您所见,我在示例中传递了 SYSDATE