CREATE OR REPLACE my_to_number(text,text) RETURNS number AS
$$
BEGIN
IF NOT textregexeq($1,'[0-9]{'||length($2)||'}') THEN
RAISE EXCEPTION 'TEXT % is not a valid NUMBER',$1;
END IF;
RETURNS to_number($1,$2);
END;
$$ LANGUAGE PLPGSQL IMMUTABLE;
OR something like ...
2007/8/3, Laurent Martelli < laurent.martelli@seditel.fr>:Heikki Linnakangas a écrit :
> Laurent Martelli wrote:
>> to_number('123.0','999999') returns 1230, at least on version 7.4 and 8.1. I
>> think it should return 123 or raise an error.
>
> to_number will silently ignore any character that doesn't match the
> pattern. That can be confusing, and not generally a very bright idea in
> applications, but we can't really change the behavior because that could
> break existing applications.
OK. I'm tempted to say that since this is not specified in the
documentation, applications should not rely on this behaviour. But I
understand you will not to break existing applications, so perhaps you
could add a function that would behave in a more expected manner, or at
least document precisely the current behaviour in the documentation.
Best regards,
Laurent
---------------------------(end of broadcast)---------------------------
TIP 1: if posting/reading through Usenet, please send an appropriate
subscribe-nomail command to majordomo@postgresql.org so that your
message can get through to the mailing list cleanly
--
William Leite Araújo
DBA - QUALICONSULT