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

ind*_*ath 1 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, ' '
          ) ;
Run Code Online (Sandbox Code Playgroud)

提前致谢

Ed *_*bbs 5

而不是to_number(sysdate, 'YYYYMMDD'),这样做:

to_number(to_char(sysdate, 'YYYYMMDD'))
Run Code Online (Sandbox Code Playgroud)

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

  • 投票人可以解释一下投票原因吗?别往心里放; 如果有什么问题我想解决它.谢谢. (3认同)