-189 CCSID ccsid IS INVALID
説明
入力ホスト変数または結果列のサブタイプを判別するために、指定された CCSID を使用して SYSSTRINGS カタログ表にアクセスしましたが、以下のエラー状態のいずれかが発生しました。
- CCSID が INCCSID の値でも OUTCCSID の値でもない。
- TRANSTYPE 列が CCSID を CHARACTER ではなく GRAPHIC に分類している。
- グラフィック CCSID がユーザーのシステム上で指定されていない。
- CCSID は値の許容範囲外にある。CCSID は 1 から 65533 までの範囲に あるか、または 65535 という値でなければなりません。
- CHAR、VARCHAR または CLOB へのキャスト時に DBCS CCSID が指定された。
- グラフィック・データ・タイプへのキャスト時に、SBCS または混合 CCSID、あるいは 65535 が指定された。
- CLOB へのキャスト時に、FOR BIT DATA 属性をもつデータに対してのみ有効 な CCSID 65535 が指定された。
この一対の CCSID に対する変換が定義されているかどうかを判別するために、 一対の CCSID を用いて SYSSTRINGS にアクセスしたときにも、このエラーが起こることがあります。 この場合は、ストリングのデータ・タイプと その CCSID の TRANSTYPE 種別が矛盾していること (一方が GRAPHIC で、 他方が CHARACTER であること) がエラーの原因です。
このエラーは、DECP で指定された CCSID が SYSSTRINGS の INCCSID または OUTCCSID 列内の 値として存在していない場合に起こります。
このエラーが起こるもう 1 つの理由は、システムのインストール時にグラフィック CCSID が指定されなかったのに、 組み込まれているグラフィック関数の 1 つをユーザーが使用していることに あります。
システムの処置
このステートメントはバインドまたは実行することができません。
プログラマーの応答
CCSID が有効で、かつストリングのデータ・タイプと一致するようにしてください。 有効な CCSID が SYSSTRINGS の組み込み行にリストされていない場合は、 ユーザー提供の行を挿入することによって、有効な CCSID を定義することができます。 有効な CCSID が、 ユーザー提供の行に誤ってクラス分けされている場合は、 その行を更新することにより、誤りを訂正することができます。
システムのインストール時にグラフィック CCSID が指定されていなかった場合、DECP を更新してグラフィック CCSID を組み込み、Db2® を立ち上げ直してください。
SQLSTATE
22522