varchar2(4000) データ型の URL 値を持つ列 (URL) があります。そこの値の一部は 4000 文字を超えているため、元の値を同じ列内の部分文字列に置き換えて、列内の 4000 文字を超える値のみを部分文字列にする方法はありますか?
質問する
3240 次
2 に答える
2
Varchar は最大 4,000 文字をサポートします。SUBSTR などのすべての関数出力は varchar であるため、4,000 文字を超える文字列を保持することはできません。clob を使用する必要があります。ただし、clob は lobobject です。そのため、遅くなります。
テーブルの作成中に、2 つの列を追加して PL/SQL ブロックを使用できます。これは、PL/SQL で varchar が最大 32,767 文字になる可能性があるためです。
于 2012-12-18T17:56:09.427 に答える
2
このように4000文字を超える列を見つけることができます。
select userid, length(description)
from Users
where length(description) > 4000;
したがって、次のように CTL ファイル自体で解決できます。
description "SUBSTR(:description, 1, 4000)",
データを失いたくない場合は、CLOB
代わりに datatype を使用できますvarchar2(4000)
于 2012-12-18T17:33:24.543 に答える