0

私はオラクル11gを使用しています。varchar2 のサイズ制限を超える文字列に遭遇したときはいつでも、SQL サーバーでは、以下のようにデータを複数の変数に分割し、実行中にそれらを結合していました。ただし、Oracle は実行前に 32K の結合サイズを想定しているようです。「ORA-20000: ORU-10028: 行の長さのオーバーフロー、行あたり 32767 バイトの制限」エラーが発生します。

これらの変数をoralceスクリプトで使用しています(ストアドプロシージャではありません)。最後の 2 つのステートメントは上記のエラーをスローしており、個別に値を表示できます。前もって感謝します。

DECLARE

sViewQuery varchar2(32000);
sViewSelectQuery varchar2(32000);

BEGIN

    ---Assign values of 32,000 letter string (dynamic query)
    sViewSelectQuery:='32K string...';
    sViewQuery:='32K string..';

    DBMS_OUTPUT.PUT_LINE(sViewQuery||sViewSelectQuery);

    EXECUTE IMMEDIATE sViewQuery||sViewSelectQuery;

END;
4

2 に答える 2

0

CLOB、Character Large OBject を使用する必要があります。CLOB には最大 4GB のデータを含めることができるため、32K 以上の文字列の長さを処理できます。

詳細情報: http://docs.oracle.com/javadb/10.3.3.0/ref/rrefclob.html

于 2014-02-10T22:54:42.893 に答える