我得到了这个错误ORA-01438: value larger than specified precision allowed for this column
,但我不知道哪一列。如何找到包含错误的列?
INSERT INTO plants(created_at,updated_at,published,title,id_old,simplified_name,code,dp1,dh1,dh2,dh4,field9,migrate,lives_in_ro,is_endemic,is_international,is_national,priority,id_synonim,id_group,genus,id_tax_code,guid,vernacular_name,is_sensitive,id_red_list_codes,id_owner,insert_date,update_date,is_in_zoo,is4a,is5a,is5b,is4b,is_cites,is_bdv,is_ber,is_bon,is_new_record,is_for_derogation,id_inserter,berna1,bonn1,anexa_bonn,anexa_berna,berna2,berna3,bonn2,a17code,field47,field48,field49,taxup,incerta,spontan,cultivat,invaziva,al,turbarie,lr,l_rosie,lista_rosie,taxon,increngatura,clasa,ordin,familia,gen,specia,autor,subspecia,autor_ssp,varietatea,autor_var,forma,autor_for,ngexc,ngcateg,biblio,transferat,submited_checked
) VALUES(TO_DATE(sysdate, 'yyyy/mm/dd hh24:mi:ss'), TO_DATE(sysdate, 'yyyy-mm-dd hh24:mi:ss'), 0, 'Euclasta perisalis', '99012', 'perisalis', '', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '306200', '1', 'Euclasta', '200681', '8615DFE9-C28A-4240-B3A2-79D97ECCD41C', '', '0', '', '','00:00,0', '', '0', '0','0', '0','0', '0', '0', '0', '0', '0', '0', 'D8446A30-8B8B-4059-AE3F-86AF0ABA39B8', '0', '0', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '0', '', '', '', 'Arthropoda', 'Insecta', 'Lepidoptera', 'Crambidae', 'Euclasta', 'varii', '', '', '', '', '', '', '', '', '', '', '', '0')
这是DLL
DDL for Table PLANTS
--------------------------------------------------------
CREATE TABLE "SYSTEM"."PLANTS"
( "ID" NUMBER(19,0),
"DELETED_AT" TIMESTAMP (6),
"CREATED_AT" TIMESTAMP (6),
"UPDATED_AT" TIMESTAMP (6),
"PUBLISHED" CHAR(1 BYTE) DEFAULT '0',
"TITLE" VARCHAR2(200 BYTE),
"DESCRIPTION" CLOB,
"ID_OLD" NUMBER(10,0),
"SIMPLIFIED_NAME" VARCHAR2(200 BYTE),
"CODE" VARCHAR2(100 BYTE),
"DP1" NUMBER(3,0),
"DH1" NUMBER(3,0),
"DH2" NUMBER(3,0),
"DH4" NUMBER(3,0),
"FIELD9" NUMBER(3,0),
"MIGRATE" NUMBER(3,0),
"LIVES_IN_RO" NUMBER(3,0),
"IS_ENDEMIC" NUMBER(3,0),
"IS_INTERNATIONAL" NUMBER(3,0),
"IS_NATIONAL" NUMBER(3,0),
"PRIORITY" NUMBER(3,0),
"ID_SYNONIM" NUMBER(10,0),
"ID_GROUP" NUMBER(3,0),
"GENUS" VARCHAR2(100 BYTE),
"ID_TAX_CODE" NUMBER(5,0),
"GUID" VARCHAR2(200 BYTE),
"VERNACULAR_NAME" VARCHAR2(200 BYTE),
"IS_SENSITIVE" NUMBER(3,0),
"ID_RED_LIST_CODES" VARCHAR2(200 BYTE),
"ID_OWNER" VARCHAR2(200 BYTE),
"INSERT_DATE" VARCHAR2(200 BYTE),
"UPDATE_DATE" VARCHAR2(200 BYTE),
"IS_IN_ZOO" NUMBER(3,0),
"IS4A" NUMBER(3,0),
"IS5A" NUMBER(3,0),
"IS5B" NUMBER(3,0),
"IS4B" NUMBER(3,0),
"IS_CITES" NUMBER(3,0),
"IS_BDV" NUMBER(3,0),
"IS_BER" NUMBER(3,0),
"IS_BON" NUMBER(3,0),
"IS_NEW_RECORD" NUMBER(3,0),
"IS_FOR_DEROGATION" NUMBER(3,0),
"ID_INSERTER" VARCHAR2(200 BYTE),
"BERNA1" NUMBER(3,0),
"BONN1" NUMBER(3,0),
"ANEXA_BONN" VARCHAR2(200 BYTE),
"ANEXA_BERNA" VARCHAR2(200 BYTE),
"BERNA2" NUMBER(3,0),
"BERNA3" NUMBER(3,0),
"BONN2" NUMBER(3,0),
"A17CODE" VARCHAR2(200 BYTE),
"FIELD47" VARCHAR2(200 BYTE),
"FIELD48" VARCHAR2(200 BYTE),
"FIELD49" VARCHAR2(200 BYTE),
"TAXUP" VARCHAR2(100 BYTE),
"INCERTA" VARCHAR2(100 BYTE),
"SPONTAN" VARCHAR2(100 BYTE),
"CULTIVAT" VARCHAR2(100 BYTE),
"INVAZIVA" VARCHAR2(100 BYTE),
"AL" VARCHAR2(100 BYTE),
"TURBARIE" VARCHAR2(100 BYTE),
"LR" VARCHAR2(100 BYTE),
"L_ROSIE" VARCHAR2(100 BYTE),
"LISTA_ROSIE" VARCHAR2(100 BYTE),
"TAXON" VARCHAR2(200 BYTE),
"INCRENGATURA" VARCHAR2(200 BYTE),
"CLASA" VARCHAR2(200 BYTE),
"ORDIN" VARCHAR2(200 BYTE),
"FAMILIA" VARCHAR2(200 BYTE),
"GEN" VARCHAR2(200 BYTE),
"SPECIA" VARCHAR2(200 BYTE),
"AUTOR" VARCHAR2(200 BYTE),
"SUBSPECIA" VARCHAR2(200 BYTE),
"AUTOR_SSP" VARCHAR2(200 BYTE),
"VARIETATEA" VARCHAR2(200 BYTE),
"AUTOR_VAR" VARCHAR2(200 BYTE),
"FORMA" VARCHAR2(200 BYTE),
"AUTOR_FOR" VARCHAR2(200 BYTE),
"NGEXC" VARCHAR2(100 BYTE),
"NGCATEG" VARCHAR2(100 BYTE),
"BIBLIO" VARCHAR2(100 BYTE),
"TRANSFERAT" NUMBER(3,0),
"SUBMITED_CHECKED" NUMBER(3,0)
) PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255
NOCOMPRESS LOGGING
STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
TABLESPACE "SYSTEM"
LOB ("DESCRIPTION") STORE AS BASICFILE (
TABLESPACE "SYSTEM" ENABLE STORAGE IN ROW CHUNK 8192 RETENTION
NOCACHE LOGGING
STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)) ;
发布于 2023-02-07 12:30:30
我假设您在表NUMBER(precision, scale)
中输入了一个plants
列,其中precision
是小数点前后的最大数字总数,scale
是小数点之后的数字数。找一个这样的专栏。要插入的值超过了这些限制。
此外,您正在将大部分值作为单引号中的字符串插入。将值插入没有引号的数字列中。即使它在Oracle中工作,它也不适用于其他数据库,因此很难检测insert语句中的数字列。
现在您已经添加了表声明,我看到您正在将'200681'
插入到id_tax_code
中,该D5
类型为NUMBER(5,0)
,但该值有6位数(如果我匹配正确的列)。
我还想知道为什么GUID列被键入为VARCHAR2(200 BYTE)
。他们有36个字符的长度。
像FIELD48
这样的字段名是很糟糕的。
我还建议在insert语句中的每5列后面插入换行符。这使得匹配列和值更加容易:
INSERT INTO plants(
created_at, updated_at, published, title, id_old,
simplified_name, code, dp1, dh1, dh2,
dh4, field9, migrate, lives_in_ro, is_endemic,
is_international, is_national, priority, id_synonim, id_group,
genus, id_tax_code, guid, vernacular_name, is_sensitive,
-- ^^^^^^^^^^^
id_red_list_codes, id_owner, insert_date, update_date, is_in_zoo,
is4a, is5a, is5b, is4b, is_cites,
is_bdv, is_ber, is_bon, is_new_record, is_for_derogation,
id_inserter, berna1, bonn1, anexa_bonn, anexa_berna,
berna2, berna3, bonn2, a17code, field47,
field48, field49, taxup, incerta, spontan,
cultivat, invaziva, al, turbarie, lr,
l_rosie, lista_rosie, taxon, increngatura, clasa,
ordin, familia, gen, specia, autor,
subspecia, autor_ssp, varietatea, autor_var, forma,
autor_for, ngexc, ngcateg, biblio, transferat,
submited_checked
) VALUES(
TO_DATE(sysdate, 'yyyy/mm/dd hh24:mi:ss'), TO_DATE(sysdate, 'yyyy-mm-dd hh24:mi:ss'), 0, 'Euclasta perisalis', '99012',
'perisalis', '', '0', '0', '0',
'0', '0', '0', '0', '0',
'0', '0', '0', '306200', '1',
'Euclasta', '200681', '8615DFE9-C28A-4240-B3A2-79D97ECCD41C', '', '0',
-- ^^^^^^^^
'', '', '00:00,0', '', '0',
'0', '0', '0', '0', '0',
'0', '0', '0', '0', '0',
'D8446A30-8B8B-4059-AE3F-86AF0ABA39B8', '0', '0', '', '',
'', '', '', '', '',
'', '', '', '', '',
'', '', '', '', '0',
'', '', '', 'Arthropoda', 'Insecta',
'Lepidoptera', 'Crambidae', 'Euclasta', 'varii', '',
'', '', '', '', '',
'', '', '', '', '',
'0'
)
另请参阅:
https://dba.stackexchange.com/questions/323159
复制相似问题