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