UJP - 技術情報

Life is fun and easy!

不正IP報告数

Okan Sensor
 
メイン
ログイン
ブログ カテゴリ一覧

     

ORA-01438 指定した精度を超える値が列に指定されています。

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)に変更している.



広告スペース
Google