Oracle FAQ | Your Portal to the Oracle Knowledge Grid |
![]() |
![]() |
Home -> Community -> Usenet -> c.d.o.misc -> Re: numeric check
chrisval_at_gmail.com wrote:
>Malcolm Dew-Jones wrote:
>> -- untested
>> function is_a_number( s varchar2)
>> return number
>> is
>> begin
>> return to_number(s);
>> exception
>> -- This should check just the expected error
>> -- but I haven't bothered to look it up.
>> when others then
>> return NULL;
> end is_a_number;
>
>What you're looking for is: "INVALID_NUMBER"
I thinkthis throws a VALUE_ERROR exception. What's the difference?
Not to be pedantic, but shouldn't this function return a BOOLEAN instead of a NUMBER, so you have something like:
FUNCTION is_numeric(s VARCHAR2)
RETURN BOOLEAN
IS
return_value BOOLEAN := FALSE ;
v_numeric NUMBER := 0;
BEGIN
v_numeric := TO_NUMBER(s);
return_value := TRUE ;
RETURN return_value;
EXCEPTION
WHEN VALUE_ERROR THEN
RETURN return_value;
WHEN OTHERS THEN
DBMS_OUTPUT.put_line('Unexpected EXCEPTION!'); RETURN return_value;
![]() |
![]() |