× The internal search function is temporarily non-functional. The current search engine is no longer viable and we are researching alternatives.
As a stop gap measure, we are using Google's custom search engine service.
If you know of an easy to use, open source, search engine ... please contact support@midrange.com.



On 14-May-2015 12:24 -0500, Luis Rodriguez wrote:

<<SNIP>> write a SQL function that checks if your number is valid.

Some years ago we had to write a small function in order to check
some bad data we had received from an external provider. Our function
was something like this :

----------------------------------------------------
DROP  Function QGPL/IsNumeric;

Create Function QGPL/IsNumeric (@TestData VarChar(64))
   Returns Char(1)
   Language SQL
   Deterministic
   Not Fenced
   Set Option Commit=*None, UsrPrf=*Owner

   BEGIN
    Declare @Double Double Not Null Default 0;

    Declare InvalidNum condition for '01565';
    Declare Exit Handler For InvalidNum
     Return 'N';
    If @TestData Is Null Then
     Return 'N';
    End If;

    Set @Double=Cast(@TestData As Double);
    Return 'Y';
   END
----------------------------------------------------

So you could something like:

UPDATE MyTable set MyField = 0
WHERE IsNumeric( cast(MyField  as varchar(64))  )  = 'N'


If in that example the MyField is a numeric data-typed column, for which bad-decimal-data exists for some value, then the CAST(MYFIELD...) should fail with a data-mapping-error, just as should reference to the MyField without any [casting] scalar function applied.

The HEX scalar is [AFaIK; ¿I think I read about something new for FIELDPROC that might similarly? the only scalar function supported, for which a data mapping error should and would not occur against a column with bad decimal data. Thus I expect such an endeavor, if as suggested intends to reset the values with bad-data to a zero value, would not be fruitful.

FWiW I find returning 'N' for the NULL value rather than using RETURNS NULL ON NULL INPUT [¿or is that the default and the If..Null predicate is always false?] seem rather contrary to the concept of NULL.


As an Amazon Associate we earn from qualifying purchases.

This thread ...

Follow-Ups:
Replies:

Follow On AppleNews
Return to Archive home page | Return to MIDRANGE.COM home page

This mailing list archive is Copyright 1997-2024 by midrange.com and David Gibbs as a compilation work. Use of the archive is restricted to research of a business or technical nature. Any other uses are prohibited. Full details are available on our policy page. If you have questions about this, please contact [javascript protected email address].

Operating expenses for this site are earned using the Amazon Associate program and Google Adsense.