DBAtlas · データベース運用アトラス

ORA-12899: value too large for column(列に対して値が大きすぎる)

Oracle

意味

定義された最大長より長い値が文字/データ列に書き込まれた。例えば 15 文字のテキストは VARCHAR2(10) 列に収まらない。

原因

列幅がデータに対して不足している、マルチバイト文字セット (UTF8) で文字数がバイト上限 (BYTE セマンティクス) を超える、データ移行時の異なる文字セット、連結結果が長くなる。

対処方法

列を広げる: ALTER TABLE my_table MODIFY (my_column VARCHAR2(100)); マルチバイトの内容には CHAR セマンティクスを使う: my_column VARCHAR2(100 CHAR)。長い値を短くする必要がある場合は SUBSTR で切り詰める。エラーメッセージには実際の長さと許容長が示される。LENGTH/LENGTHB であふれたレコードを特定する。

DBAtlas で開く →

同じデータベースの他の項目