• ベストアンサー

Oracle Nunber型の精度(桁数)について

Oracleデータベース上のテーブルにNUMBER(1,0)で定義した項目を追加し、 その項目にSQLで値(数値で1、または0)をセットしたところ、「ORA-01438: この列に許容される指定精度より大きな値です」のエラーが発生しました。 同じテーブル上に元々NUMBER(1,0)で定義された項目があり、そちらでは 同じエラーがでません。 何か原因として考えられる事はあるのでしょうか?

質問者が選んだベストアンサー

  • ベストアンサー
  • sngPoi2
  • ベストアンサー率49% (475/952)
回答No.2

エラーが出る項目と出ない項目は項目定義が同じですか? 同じであれば、maiko04 さん記載のとおりだと思います。 一度下記SQLで項目の情報を確認してみれば如何ですか? SELECT TABLE_NAME -- テーブル名 , COLUMN_NAME -- カラム名 , DATA_TYPE -- データタイプ , DATA_LENGTH -- データ長 , DATA_PRECISION -- NUMBER 型の全桁数(精度) , DATA_SCALE -- NUMBER 型の小数点以下の桁数 , DATA_DEFAULT -- デフォルト値 , NULLABLE -- NULL許容/非許容 FROM ALL_TAB_COLUMNS WHERE OWNER = 'ここにスキーマ' AND TABLE_NAME = 'ここにテーブル' AND COLUMN_NAME LIKE '%%' -- 検索したい項目名(全体検索の場合はこのまま)

その他の回答 (1)

  • maiko04
  • ベストアンサー率17% (345/1956)
回答No.1

insertのときにNUMBER(1,0)の最大値9を超えた数を指定しているのでしょう。 insert前にその数を表示してみたらわかるでしょう。

関連するQ&A