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