リンクサーバーを使用してSQLServerストアドプロシージャ内のiSeries(AS400)のテーブルを更新しようとしていますが、ゾーンとして定義されている列を更新しようとすると失敗します。
私のストアード・プロシージャーでは、値は整数として定義されており、iSeriesでは、小数点なしのゾーン6長として定義されています。
私は次のように整数をキャストしようとしました:
cast(@SysDate as NUMERIC(6))
しかし、まだエラーが発生しています:
メッセージ7343、レベル16、状態4、行1
リンクサーバー "PD999F98OWSEC"のOLE DBプロバイダー "MSDASQL"はテーブルを更新できませんでした。
行セットは楽観的同時実行性を使用しており、含まれている行が最後にフェッチまたは再同期された後、列の値が変更されました。
ゾーン化されたフィールドを更新から削除してもこのエラーは発生しないため、型変換の問題であると確信しています。
リンクサーバーは次のように定義されますOLE DB Provider for ODBC drivers and provider string is MSDASQL.1
ここでの助けは大歓迎です
IBMi DB2数値データ型:
P-パック10進数-DECIMAL-DEC
S-ゾーン10進数-NUMERIC-NUM