こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

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

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

投稿日時 - 2019-06-27 11:58:06

QNo.9629555

困ってます

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

エラーが出る項目と出ない項目は項目定義が同じですか?
同じであれば、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 '%%' -- 検索したい項目名(全体検索の場合はこのまま)

投稿日時 - 2019-07-23 20:01:11

ANo.2

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(2)

ANo.1

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

投稿日時 - 2019-06-27 12:25:35

あなたにオススメの質問