Ok. Now the function is OK....

CREATE OR REPLACE FUNCTION my_to_number(text,text) RETURNS numeric AS
$$
    BEGIN
        IF NOT textregexeq($1,'^[0-9]+$') THEN
                RAISE EXCEPTION 'TEXT % is not a valid NUMBER',$1;
        END IF;
        RETURN to_number($1,$2);
    END;
$$ LANGUAGE PLPGSQL IMMUTABLE;

Tests...

=# select my_to_number('123.0','999999');
ERRO:  TEXT 123.0 is not a valid NUMBER
=# select my_to_number('1230','999999');
 my_to_number
--------------
         1230
(1 registro)

Tempo: 0,734 ms

-- 
William Leite Araújo
DBA - QualiConsult

Reply via email to