1

次のクエリを使用して oracle10g にテーブルを作成しました......

CREATE TABLE  "MOBILELOCATION" 
("EMPLOYEEID" NUMBER NOT NULL ENABLE, 
 "PRESENTDATE" VARCHAR2(30) NOT NULL ENABLE, 
  "PRESENTTIME" VARCHAR2(30) NOT NULL ENABLE, 
  "LATITUDE" NUMBER(6,10) NOT NULL ENABLE, 
 "LONGITUDE" NUMBER(6,10) NOT NULL ENABLE) 

テーブルは正常に作成されました...しかし問題は、テーブルに行を挿入しようとしているときにエラーが表示されることです

error ORA-01438: value larger than specified precision allowed for this column

私が使用したクエリは、

insert into mobilelocation values(12303,'30-10-2011','09:30',16.9876,82.3426);

どこで制約を無効にしましたか?? どなたか説明お願いします..

4

1 に答える 1

3

あなたの列はかなり奇妙に定義されています-LATITUDE精度(合計桁数)は6、スケール(小数点以下の桁数)は10です。LONGTITUDENUMBER(6,10)

NUMBER(*)それらをまたはにNUMBER (10, 6)または類似のものに変更しますNUMBER(*,4)...正しい宣言を推測するのは難しいですが、言及されているすべてがあなたが提供したサンプルデータで機能します...

参照については、http://download.oracle.com/docs/cd/B19306_01/server.102/b14220/datatype.htm#i16209を参照してください。

于 2011-10-30T13:24:15.567 に答える