2

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

如果分配的字符串长度小于 80 个字符.. 它工作正常,如果长度超过 79 个字符,那么我会收到字符串截断错误。

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。

任何帮助或建议将不胜感激。

问候,斯里安。

4

0 回答 0