XMLを作成します。現在のコードでは、一度に1つのXMLタグをVARCHAR2
変数に追加することでそれを行います。VARCHAR2の代わりにCLOBを使用
xmlString VARCHAR2(32767);
....
....
xmlString := xmlString || '<' || elementName || '>' || elementValue || '</' || elementName || '>';
しかし原因VARCHAR2
上の32767文字のサイズ制限のために、我々は非常に長いXMLのために、次のエラーを取得します。
ORA-06502: PL/SQL: numeric or value error: character string buffer too small
私たちが持っているソリューションは、CLOB
を宣言し、CLOB
にVARCHAR2
変数をフラッシュ維持するための手順を記述することです。
v_result clob;
.....
.....
IF xmlString IS NOT NULL THEN
dbms_lob.writeappend(v_result, LENGTH(xmlString), xmlString);
xmlString := NULL;
END IF;
しかし、これでは、新しい関数の呼び出しで多くの終了コード行を置き換える必要があります。これを行うより良い方法はありますか?
PLSQLのオペレータオーバーロードに類似したものは何ですか?変数xmlString
のデータ型をCLOBに変更して、オペレータにdbms_lob.writeappend
の作業を行わせることはできますか?