ORA-01438 指定した精度を超える値が列に指定されています。
0.更新履歴
- 2001.05.07 新規作成
1.エラー内容
以下のようなINSERT処理を行うSQL文を実行すると,エラーが出る.
SQL = "INSERT INTO " & tablename & _ " (SERIAL, USERID, AAID)" & _ " VALUES (SEQ.NEXTVAL, '" & uid & "','" & arg1) |
2.原因
指定した桁数がオーバーフローしている.
SQL> desc tablename 名前 NULL? タイプ ------------------------------- -------- ---- SERIAL NOT NULL NUMBER(5) USETID NOT NULL VARCHAR2(64) AAID NOT NULL VARCHAR2(16) SQL> |
この場合,SERIALフィールドには,NEXTVALでシリアル番号が登録されているが,データ内容が99999を超えようとしているからインサートできない.
3.対処
テーブル定義を変更する.
ALTER TABLE tablename MODIFY (serial NUMBER(12)) |
この例では,tablenameテーブルのserialフィールドを,NUMBER(12)に変更している.