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 <[EMAIL PROTECTED]>: > > 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 [EMAIL PROTECTED] so that your > message can get through to the mailing list cleanly > -- William Leite Araújo DBA - QUALICONSULT