create function get_int(p_num in number)
return varchar2
as
begin
if instr(to_char(p_num),'.')>0 then
return 'n';
end if;
return 'y';
end;
/

解决方案 »

  1.   

    写了个function,你试试看行不行
    -----------------------------------------------------------
    create or replace function ISINTEGER(p_int VARCHAR2) return boolean is
      Result boolean;
      v_int Integer;
      v_position Integer;
    begin
      v_position := INSTR (p_int, '.');
      if v_position <> 0 then
        return(false);
      end if;  v_int := To_number(p_int);
      return(true);exception
      when others then
        return(false);
    end ISINTEGER;
    /
    -----------------------------------------------------------
      

  2.   

    如果参数类型是NUMBER型的话,instr(to_char(p_num),'.')返回值都是0;
    如果参数类型是VARCHAR2型的话,如果调用的时候,给的数是NUMBER类型的话;INSTR返回的也总是0。
    问题还是没有解决
    。。