/*
判断字符串是否是日期格式
*/
--转日期,正确的日期返回1,错误返回0
create or replace function is_date(parameter varchar2) return number is
  val date;
begin
  val := to_date(nvl(parameter, 'a'), 'yyyy-mm-dd hh24:mi:ss');
  return 1;
exception
  when others then
    return 0;
end;

--转日期,如果格式不对返回null
create or replace function todate(v_str varchar2, format varchar2) return date is
v_date date;
begin 
  v_date := to_date(v_str, format);
  return v_date; 
exception 
  when others then 
  return null;
end todate;

/*调用*/

select is_date('999999') from dual; /*返回0*/
select is_date('1999-01-01') from dual; /*返回1*/


/*判断字符串是否是数字格式*/
create or replace function is_number(parameter varchar2) return number is
  val number;
begin
  val := to_number(nvl(parameter, 'a'));
  return 1;
exception
  when others then
    return 0;
end;

--转为数字,如果不能转则返回null    
create or replace function tonumber(v_str varchar2) return number is
v_num number;
begin 
  v_num := to_number(v_str);
  return v_num; 
exception 
  when others then 
  return null;
end tonumber; 

/*调用*/
select is_date('abc') from dual; /*返回0*/
select is_date('123') from dual; /*返回1*/

 

posted on 2018-04-03 22:25  清风暮雨  阅读(1478)  评论(0)    收藏  举报