Here are three slightly different versions of what you might be looking for.

CREATE OR REPLACE FUNCTION isnum (thestring IN VARCHAR2)
   RETURN BOOLEAN
IS
   holder NUMBER;
BEGIN
   holder := TO_NUMBER(thestring);
   RETURN TRUE;
EXCEPTION
   WHEN OTHERS
   THEN
      RETURN FALSE;
END;
/

That is callable from PL/SQL, not SQL.  For SQL use, you would return a number
or a string indicating whether it is successful.

CREATE OR REPLACE FUNCTION isnum (thestring IN VARCHAR2)
   RETURN NUMBER
IS
   holder NUMBER;
BEGIN
   holder := TO_NUMBER(thestring);
   RETURN 1;  -- pseudo-true
EXCEPTION
   WHEN OTHERS
   THEN
      RETURN 0;  -- pseudo false
END;
/

However, the following might be slightly better, depending on the application.

CREATE OR REPLACE FUNCTION toNumIfPossible (thestring IN VARCHAR2)
   RETURN NUMBER
IS
BEGIN
   RETURN TO_NUMBER(thestring);
EXCEPTION
   WHEN OTHERS
   THEN
      RETURN NULL;
END;
/

Cheers
Bill

Woody Mckay wrote:

> Hello gurus,
>
> Could someone tell me the best way to check a string to ensure that it
> contains all numeric digits before converting it to a number with to_number?
> I don't see a function like ISNUM.
>
> TIA,
>
> Woody
>
> --
> Please see the official ORACLE-L FAQ: http://www.orafaq.com
> --
> Author: Woody Mckay
>   INET: [EMAIL PROTECTED]
>
> Fat City Network Services    -- (858) 538-5051  FAX: (858) 538-5051
> San Diego, California        -- Public Internet access / Mailing Lists
> --------------------------------------------------------------------
> To REMOVE yourself from this mailing list, send an E-Mail message
> to: [EMAIL PROTECTED] (note EXACT spelling of 'ListGuru') and in
> the message BODY, include a line containing: UNSUB ORACLE-L
> (or the name of mailing list you want to be removed from).  You may
> also send the HELP command for other information (like subscribing).

--

______________________________________________
http://www.datacraft.com/    http://plnet.org/


-- 
Please see the official ORACLE-L FAQ: http://www.orafaq.com
-- 
Author: Bill Pribyl
  INET: [EMAIL PROTECTED]

Fat City Network Services    -- (858) 538-5051  FAX: (858) 538-5051
San Diego, California        -- Public Internet access / Mailing Lists
--------------------------------------------------------------------
To REMOVE yourself from this mailing list, send an E-Mail message
to: [EMAIL PROTECTED] (note EXACT spelling of 'ListGuru') and in
the message BODY, include a line containing: UNSUB ORACLE-L
(or the name of mailing list you want to be removed from).  You may
also send the HELP command for other information (like subscribing).

Reply via email to