Oracle PLSQL异常插入日期

时间:2016-08-26 15:50:27

标签: oracle exception plsql oracle11g

我在一个过程中有一个eventReactive语句,其中NUMBER格式的日期字段已转换为DATE,但在某些情况下无法进行转换。我尝试使用INSERT EXCEPTION来处理异常,但它没有插入任何行。

我想在无法转换时仅在WHEN OTHERS THEN字段中插入NULL

我是否必须使用任何光标或集合?

1 个答案:

答案 0 :(得分:4)

像这样创建自己的函数:

create or replace function safe_to_date(p number) return date DETERMINISTIC is
  begin
    return to_date(p, 'yyyymmdd');
  exception 
    when value_error
    then return null;
end;

<强>输出

select safe_to_date(00000) as test from dual;
TEST   
--------


select safe_to_date(20160826) as test from dual;
TEST   
--------
26.08.16