0

私は次のような状況にあり、

私のデータベース テーブルには、xml データを格納するための列があります。Insert クエリを使用してこのテーブルにデータを挿入しようとすると、string is too large という例外が発生します。

タイプをXMLandのままにしてみましたVACHAR(32000)が、同じ例外が発生します。

誰でもこれで私を助けることができますか?

アップデート

これは、挿入中に発生するエラーです。

The string constant beginning with "'<!--Sample XML file generated by XMLSpy v2013 sp1 (http://www.altova." is too long.. SQLCODE=-102, SQLSTATE=54002, DRIVER=3.59.81
4

3 に答える 3

1

XMLPARSE関数は、テキスト文字列を DB2 の XML データ型に変換するのに役立ちます。XMLPARSE の呼び出しで XML テキストをラップしようとしましたか?

XML ドキュメントがファイル内にある場合は、追加できるUDFがあり、ファイルの内容を直接 XML 列に簡単に取り込めます。

于 2013-05-10T21:50:27.297 に答える
0

テーブルの各列のサイズを設定できます。デフォルトのサイズ (最大サイズではない) を適切なサイズに変更してみてください。

  • また、SQL コマンド ラインを使用して直接クエリを実行しようとすると、DBMS は XML を保持できる文字列プールから大きな文字列定数を作成する必要があります (この場合は非常に大きいため、文字列を作成できません)。ただし、プログラムで同じクエリを実行すると、機能します。
  • 同じエラーが続く場合、または DBMS がデータ整合性エラーをスローする場合は、データ構造を CLOB (この場合最も可能性が高い) または BLOB (画像とマルチ メディアの場合) のような大きなものに変更してみてください。
于 2015-03-02T09:12:14.373 に答える
0

少しばかげていますが、答えは を使用しXMLPARSEて XML 文字列を 32K のチャンクに分割し、CLOBステートメントを先頭に追加して文字列サイズの制限をオーバーライドすることです。

XMLPARSE ( DOCUMENT 
CLOB('<?xml version="1.0"?>') ||
'<aLotOfVeryBigXmlData32kPart1 ......
' ||
'<aLotOfVeryBigXmlData32kPart2 ......
' ||
... etc ...
'<aLotOfVeryBigXmlData32kPartN ......
' ) 
于 2015-09-09T15:34:59.770 に答える