web-dev-qa-db-ja.com

ERRORCODE = -4461、SQLSTATE = 42815(DB2の場合)

スキーマA(テーブルx)からXMLに一部のデータをエクスポートし、XMLを読み取ってスキーマB(テーブルy)にデータを挿入しています。 20000レコードの後に​​データを挿入するとき、それは言う

com.ibm.db2.jcc.am.SqlSyntaxErrorException: [jcc][t4][20111][11366][3.63.75] The value of a Host variable is too large for its corresponding use.  Host variable=1. ERRORCODE=-4461, SQLSTATE=42815
com.ibm.db2.jcc.am.BatchUpdateException: [jcc][t4][102][10040][3.63.75] Batch failure.

バッチは送信されましたが、バッチの個々のメンバーで少なくとも1つの例外が発生しました。

テーブルxとテーブルyの対応する列のデータ型を比較しましたが、同じです。これは、ソースと宛先の両方でのidentity(Auto increment)colおよびLONG VARCHARのBIGINTです。

この問題の解決にご協力ください。

13
user1374266

同じような問題が1回ありました。 XMLにキューサイズを追加することで解決しました。私の場合、このようなものでした:

<task>
   <name>Ventas MCC</name>
   <queueSize>100</queueSize>
   <queueNames>trashQueue</queueNames>
   <queryTasks>
     <queryTask>...</queryTask>
   </queryTasks>
</task>

QueueSizeを使用すると、クエリがバッチで起動されました。

1
viticlick