Reversing a string 2006-08-28 - By Nils Drews
Back Hello group,
i got a strange problem while implementing a function, which reverses a string. It is very simple, but only works for strings (VARCHAR) of a maximum length of 38 chars. If a String is longer than that it produces the following error:
Error: com.sap.dbtech.jdbc.exceptions.DatabaseException: [-2010] (at 8): Assignment impossible, char value too long, SQL State: 22001, Error Code: -2010
The function is:
CREATE FUNCTION reverse(s VARCHAR) RETURNS VARCHAR AS VAR result VARCHAR(255); actualchar VARCHAR; indexRight INT; IF s is NULL THEN RETURN NULL; SET indexRight = LENGTH(s); SET result = ''; WHILE indexRight > 0 DO BEGIN SET actualChar = SUBSTR(s, indexRight, 1); SET indexRight = indexRight - 1; SET result = result & actualChar; END; RETURN result;
So i tested with:
SELECT inxmail_reverse('AAAAAAAAAAAAAAABBBBBBBBBBBBBBBCCCDDDDD') FROM BWTABLES
if i add an E at the end of the string i get the error.
What am i doing wrong and where is that CHAR column the error message is complaining about ???
Thx in advance,
Nils Drews
-- MaxDB Discussion Mailing List For list archives: http://lists.mysql.com/maxdb To unsubscribe: http://lists.mysql.com/maxdb?unsub=mysql@(protected)
|
|