-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