- ベストアンサー
Oracle Nunber型の精度(桁数)について
Oracleデータベース上のテーブルにNUMBER(1,0)で定義した項目を追加し、 その項目にSQLで値(数値で1、または0)をセットしたところ、「ORA-01438: この列に許容される指定精度より大きな値です」のエラーが発生しました。 同じテーブル上に元々NUMBER(1,0)で定義された項目があり、そちらでは 同じエラーがでません。 何か原因として考えられる事はあるのでしょうか?
- みんなの回答 (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)
insertのときにNUMBER(1,0)の最大値9を超えた数を指定しているのでしょう。 insert前にその数を表示してみたらわかるでしょう。