For cases like this I created a DB2 UDF that some other RDBMS's have. It is
a scalar function called isNumeric.
SET PATH "QSYS","QSYS2" ;
CREATE FUNCTION isNumeric (
pFIELD VARCHAR(256) )
RETURNS INTEGER
LANGUAGE SQL
SPECIFIC isNumeric
DETERMINISTIC
READS SQL DATA
CALLED ON NULL INPUT
NO EXTERNAL ACTION
-- NOT FENCED
SET OPTION ALWBLK = *ALLREAD ,
ALWCPYDTA = *OPTIMIZE ,
COMMIT = *NONE ,
DECRESULT = (31, 31, 00) ,
DFTRDBCOL = *NONE ,
DYNDFTCOL = *NO ,
DYNUSRPRF = *USER ,
SRTSEQ = *HEX
BEGIN
DECLARE TestTrue INTEGER DEFAULT 0 ;
IF LENGTH(TRIM(TRANSLATE(TRANSLATE(TRIM(pFIELD)
,'X',' '), ' ', '0123456789'))) = 0
THEN SET TESTTRUE = 1;
ELSE SET TESTTRUE = 0;
END IF;
RETURN TESTTRUE ;
END ;
COMMENT ON SPECIFIC FUNCTION isNumeric
IS 'isNumeric(TestField)' ;
"Zachary Johnson" <ZJohnson@xxxxxxxxxxxxx> wrote in message
news:mailman.31658.1299012233.2702.rpg400-l@xxxxxxxxxxxx...
Given a pointer and size, is there a way to find out if the data at that
address is valid numeric data? Could be packed or zoned and I suppose
integer also.
NOTICE: This electronic mail message and any files transmitted with it are
intended
exclusively for the individual or entity to which it is addressed. The
message,
together with any attachment, may contain confidential and/or privileged
information.
Any unauthorized review, use, printing, saving, copying, disclosure or
distribution
is strictly prohibited. If you have received this message in error, please
immediately advise the sender by reply email and delete all copies.
As an Amazon Associate we earn from qualifying purchases.