【Oracle】ORA-12899: 列”XXX”の値が大きすぎます(実際: 5、最大: 4)の原因と対処方法

どうも、カメ助(@kamesuke_blog)です。

業務でOracleDBのテストデータ作成時に「ORA-12899: 列”XXX”の値が大きすぎます(実際: 5、最大: 4)」のエラーが発生しました。ORA-12899エラーの原因と対処方法について調べたので共有します。

カメ助

この記事はこんな人にオススメ
・ORA-12899エラーの原因を知りたい
・ORA-12899エラーの対処方法を知りたい

Oracleユーザーの参考になれば幸いです。

目次

ORA-12899エラーの原因

ORA-12899エラーは、DBのカラムサイズ以上のデータを登録したことが原因です。

例えば【ORA-12899: 列”Schema”.”TEST_TABLE”.”MEMO”の値が大きすぎます(実際: 5、最大: 4)】の場合は、TEST_TABLEのMEMOカラム(最大4バイト)に5バイトのデータを登録しようとしてエラーになっています。

エラーのイメージ

続いてORA-12899の対処方法を見ていきましょう。

ORA-12899の対処方法

ORA-12899エラーは、DBのカラムサイズより大きいデータを登録しようとするので発生します。そのため、DBのカラムサイズより大きいデータが入らないようにすれば解決します

対処方法としては2つがあります。

ORA-12899の対処方法
  1. DBのカラムサイズを拡張する ← オススメ
  2. 登録するデータサイズを小さくする

それぞれについて説明していきます。

対処法①:DBのカラムサイズを拡張する

カラム拡張イメージ

登録するデータサイズ以上になるようにDBのカラムサイズを拡張して、ORA-12899エラーが発生しないようにします。

具体例として、以下ではTEST_TABLEのMEMOカラムのサイズを8バイトに拡張しています。

基本的には、この方法がオススメです。

カメ助

登録の可能性があるデータサイズよりも少し大きめのカラムサイズに拡張しておこう!

対処法②:登録するデータサイズを小さくする

この方法はあまりオススメではありませんが、登録する前にプログラムなどの処理で登録する文字サイズを超えないようにしましょう。

DBのカラムサイズの確認方法は、以下にまとめていますので参考にしてください。

【Oracle】文字数とバイト数を調べるSQL(ORA-12899)

まとめ

ORA-12899エラーの原因と対処方法について紹介しました。

ORA-12899エラーの対象方法は以下の通りです。

ORA-12899の対処方法
  1. DBのカラムサイズを拡張する ← オススメ
  2. 登録するデータサイズを小さくする

ORA-12899のエラーは、DBのカラムサイズを拡張して対処しましょう!

この記事が気に入ったら
フォローしてね!

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

大阪でITエンジニアしています。(9年目に突入)
趣味でウェブサイトに関することをいろいろと勉強しています。

勉強した内容やプログラミングに関する情報を中心に役立つ情報を発信するべく日々ブログを更新しています。

3度の飯よりも「柿の種」をこよなく愛する関西人。

コメント

コメント一覧 (1件)

コメントする

目次