2013-05-31 2 views
1

행을 테이블에 삽입하는 Oracle 저장 프로 시저를 만들려고합니다. 테이블 (MEAS_IND)에 char (1 바이트) 유형이며 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이 될 수 없다는 오류가 발생하므로 다른 열은 문제가 없다고 가정합니다. 여기에 코드입니다 : 사전

답변

5

대신 to_number(sysdate, 'YYYYMMDD')에서

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(to_char(sysdate, 'YYYYMMDD')) 

을 더 나은 아직, 그 다음에 last_modfd_dt 열을 변경할 너무 늦게 프로젝트에 없을 경우 a DATE 유형. DATE 유형에는 날짜가 인 시간 (분, 초, 초는 있지만 초는 없음)이 포함됩니다. 시간이없는 날짜 만 원하면 trunc(sysdate)으로 설정하십시오.

+0

답을 찾았습니다 : to_number 전환했습니다 – indianapolymath

+3

유권자가 투표 이유를 설명해 주시겠습니까? 유감 없음; 뭔가 잘못된 것이 있으면 고칠 수 있습니다. 감사. –

관련 문제