I got syntax error at end of the query near ; SQLCODE=-131, ODBC 3 State='42000' I believe the error stems from using ...dba.$Regex_Match(...
where dba.$Regex_Match is defined as
and the corresponding clr member is
I have used successfully other members from the dll for clr proc. this is my first time using clr function.
I think the error comes from the fact that you treat the bit datatype as a boolean value which is not valid in SQL Anywhere - cf. that sample which also raises -131 (SQLE_SYNTAX_ERROR):
In contrast, the following comparison with 0 or 1 will work:
So I guess you just might have to change the second condition to "...or dba.$Regex_Match(acct_type_short_name, @excludeSubAcctAliasRegexPatternLst) = 0"
FWIW, there's not boolean datatype in SQL Anywhere.
answered 28 Aug '14, 03:35
To restate Volker's correct answer: bool maps to BIT in SQL Anywhere, and BIT is an integer data type, NOT a boolean TRUE/FALSE or TRUE/FALSE/UNKKNOWN datatype. There is no boolean data type for variables in SQL Anywhere. Predicates (comparisons) can return boolean values, of course, but you cannot store or pass around those values.
Perhaps you can code it this way...
or not ( dba.$Regex_Match(acct_type_short_name, @excludeSubAcctAliasRegexPatternLst) = 1 )
if 1 is the true bool value that is mapped to integer bit (I don't know, you tell me :)
answered 28 Aug '14, 16:18