My First PL/SQL Procedure
发表于:2007-07-02来源:作者:点击数:
标签:
create or replace procedure cuidong_insert_records(p_ny in varchar2) is qystr varchar2(260) := @#大庆,吉林,辽河,冀东,江苏,胜利,华东分公司,储气库, 中原,河南,中海油,海南,华北,江汉,浙江勘探,@#; qy MK_CSYB_XBSC.QY%TYPE; qy_position number(2);
create or replace procedure cuidong_insert_records(p_ny in varchar2) is
qystr varchar2(260) := @#大庆,吉林,辽河,冀东,江苏,胜利,华东分公司,储气库, 中原,河南,中海油,海南,华北,江汉,浙江勘探,@#; qy MK_CSYB_XBSC.QY%TYPE; qy_position number(2); qy_loop number(2) := 1; dwdmstr varchar2(300) :=@#YKGFGS,EKGFGS,SKGFGS,JDFWZX,XWWHZX,TBWGS,GHSHGS,GSSHGS, JSJDZX,SYJLZX,HSE,GCJL,TXGS,GSGS,JS,SD,KYGS,@#; temp_dwdmstr varchar2(300); dwdm MK_CSYB_XBSC.DWDM%TYPE; dwdm_position number(2); dwdm_loop number(2) := 1; do_count number(2) := 0;begin loop do_count := do_count + 1; qy_position := instr(qystr,@#,@#); qy := substr(qystr,1,qy_position-1); qystr := substr(qystr,qy_position+1,length(qystr)); DBMS_OUTPUT.PUT_LINE(do_count||@# @#||qy_position||@# @#||qy||@# @#||p_ny); dwdm_loop := 1; temp_dwdmstr := dwdmstr; loop dwdm_position := instr(temp_dwdmstr,@#,@#); dwdm := substr(temp_dwdmstr,1,dwdm_position-1); temp_dwdmstr := substr(temp_dwdmstr,dwdm_position+1,length(temp_dwdmstr)); DBMS_OUTPUT.PUT_LINE(@# @#||dwdm_position||@# @#||dwdm||@# @#||p_ny); insert into MK_CSYB_DBSC( NY, QY,
LRRQ, LRRY, ZBDW, DWDM ) values(p_ny,qy,date@#2005-04-05@#,@#东部市场录入@#,@#市场
开发部@#,dwdm); dwdm_loop := dwdm_loop + 1; if dwdm_loop = 18 then exit; end if; end loop; qy_loop := qy_loop + 1; if qy_loop = 16 then exit; end if; end loop; commit; exception when others then rollback;end cuidong_insert_records;
原文转自:http://www.ltesting.net