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/[EMAIL PROTECTED]

Reply via email to