在尝试存储超过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。