一括更新を行う必要があります。ということで手順を書いてみました。
CREATE OR REPLACE PROCEDURE or_doh_rcause_sm_wip_upd_sp (
p_rcause_cd VARCHAR2,
p_doh_sa clob
)
IS
v_plant_cd VARCHAR2 (8);
v_doh_sa NUMBER := 0;
v_ins_upd CHAR(1);
Begin
for i in (select regexp_substr( p_doh_sa, '[^;]+', 1, rownum) result
from dual
connect by level <= length(regexp_replace( p_doh_sa, '[^;]+')) + 1)
LOOP
v_doh_sa := TO_NUMBER(substr( i.result||',', 1, instr(i.result,',')-1 ),'9999999999999999999') ;
v_ins_upd := substr(i.result, instr(i.result,',',1)+1,1);
v_plant_cd := substr( i.result,instr(i.result,',',1,2)+1 );
IF v_ins_upd = 'U' THEN
update OR_DOH_PM_SM_ROOT_CAUSE_T set ROOT_CAUSE_SA = p_rcause_cd
where DOH_SA = v_doh_sa
AND Plant_cd = v_plant_cd;
END IF;
END LOOP;
END;
例:p_doh_sa:'942168,I,FV52;942167,I,FV52;';
このように、私は500セット以上になります。彼らが実行する場合、フロントエンドからいつ
エラーが発生するORA-01460: unimplemented or unreasonable conversion requested
これを解決する方法を教えてください。