My First PL/SQL Procedure

- 中國WEB開發者網絡 (http://www.webasp.net)
-- 技術教程 (http://www.webasp.net/article/)
--- My First PL/SQL Procedure (http://www.webasp.net/article/22/21171.htm)
-- 作者:未知
-- 發佈日期: 2005-04-29

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;

webasp.net