繁体   English   中英

无效的数字格式模型oracle错误,插入字符

[英]invalid number format model oracle error inserting a char

我正在尝试创建一个Oracle存储过程,该存储过程只是在表中插入一行。 表(MEAS_IND)中有一列为char(1 byte)类型,不能为null。 当我尝试将任何一个字符插入到列/表中时,出现错误:

ORA-01481: invalid number format model
ORA-06512: at "IFDC.PKG_FIELD_ASSISTANT", line 326
ORA-06512: at line 3
01481. 00000 -  "invalid number format model"
*Cause:    The user is attempting to either convert a number to a string
           via TO_CHAR or a string to a number via TO_NUMBER and has
           supplied an invalid number format model parameter.
*Action:   Consult your manual.

我试过插入'','N'和to_char('')。 还有其他一些列不能为null,并且看起来可以正常工作。 当我注释掉MEAS_IND时,出现错误,它不能为null,因此我假设其他列都可以。 这是代码:

INSERT INTO myTable
          (
            cont_id
            , cms_uid
            , dwr_dt
            , prj_nbr
            , ln_itm_nbr
            , loc_seq_nbr
            , loc_instld
            , vend_id
            , rpt_qty
            , itm_cd
            , last_modfd_uid
            , last_modfd_dt
            , catg_nbr
            , rmrks_id, plan_pg_ref_nbr, ref_doc, fr_sta_itm, fr_sta_dstnc, fr_sta_offst_t, fr_sta_offst_dstnc
            , to_sta_itm, to_sta_dstnc, to_sta_offst_t, to_sta_offst_dstnc, meas_ind
          )
       VALUES
          (
            pContractId
            , pUSER_ID
            , pDRW_DATE
            , pProject_num
            , pPLN
            , vMaxLocSeq
            , pLocation
            , pVend_id
            , pAmount
            , pItemCode
            , pUSER_ID
            , to_number(sysdate, 'YYYYMMDD')
            , vCatigoryNumber
            , ' ', ' ', ' ', ' ', 0, ' ', 0
            , ' ', 0, ' ', 0, ' '
          ) ;

提前致谢

代替to_number(sysdate, 'YYYYMMDD') ,执行以下操作:

to_number(to_char(sysdate, 'YYYYMMDD'))

更好的是,如果在项目中为时不晚,则将last_modfd_dt列更改为DATE类型。 DATE类型将包括日期一天中的时间(小时,分钟,秒,但不包括小数秒)。 如果只需要日期而没有时间,则将其设置为trunc(sysdate)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM