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

Reply via email to