我在尝试存储超过 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。
任何帮助或建议将不胜感激。
问候,斯里安。