我在Oracle中编译以下函数时遇到麻烦
CREATE OR REPLACE FUNCTION fn1
return binary_double
as
Fecha DATE;
Dias binary_double;
begin
dbms_output.put_line(CAST(TRUNC(CURRENT_DATE,'DD') AS DATE) - cast(current_timestamp as date));
return Dias;
end;
结果错误
Error(8,27): PLS-00382: expression is of wrong type
但是在函数体内运行相同的表达式
select CAST(TRUNC(CURRENT_DATE,'DD') AS DATE) - cast(current_timestamp as date) from dual
给出预期的结果-两个日期之间的天数
-0.0607060185185185185185185185185185185185
关于此功能可能有什么问题有任何想法吗?
最佳答案
采用:
begin
dbms_output.put_line(TRUNC(CURRENT_DATE,'DD') - cast( current_timestamp as date));
end;
/
Current_date返回数据类型DATE的值
Trunct也返回DATE。
因此,您正在尝试将DATE类型转换为DATE类型。
关于oracle - 甲骨文-PLS-00382 : expression is of wrong type in subtracting dates,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34957141/