无效的数字格式模型oracle错误插入一个char

时间:2013-05-31 14:18:28

标签: sql oracle ora-01481

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

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('')。还有其他列不能为空,似乎工作正常。当我注释掉MEAS_IND时,我得到的错误是它不能为空,所以我假设其他列都没问题。这是代码:

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, ' '
          ) ;

提前致谢

1 个答案:

答案 0 :(得分:5)

而不是to_number(sysdate, 'YYYYMMDD'),请执行以下操作:

to_number(to_char(sysdate, 'YYYYMMDD'))

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