Firebird - 字符串右截断

时间:2013-08-06 10:59:44

标签: firebird2.5

在尝试存储超过80个字符的字符串值时,我遇到了一个特殊的问题 在我的存储过程中,我已将字符串定义为Varchar(100)并指定一个超过80个字符的值。

如果指定的字符串长度是< 80个字符..它工作正常,如果长度超过79个字符,则iam得到字符串截断错误。

CREATE OR ALTER PROCEDURE TEST_PROCEDURE returns (vals varchar(3))

as
declare variable Vallen integer;

declare variable pos integer;

declare variable val varchar(3);

declare variable distinct_Vals varchar(100);

begin

   distinct_Vals = '123 456 789 012 345 678 901 234 567 890 123 456 789 012 345 678 901 234 567 890 1';

   valLEN = UDF_STRLEN(distinct_Vals);

   POS = 1;

    WHILE ( :POS < :ValLen) DO

    BEGIN

        Val = UDF_SUBSTRLEN(:distinct_Vals,:POS,3);

        POS = POS + 4;

        Vals = :Val;

        suspend;
end

end

暂停仅用于显示单个值

我正在使用带有ISO8859_1字符集的Firebird 2.5。

非常感谢任何帮助或建议。

此致 Srian。

0 个答案:

没有答案