打印本文 打印本文 关闭窗口 关闭窗口
My First PL/SQL Procedure
作者:武汉SEO闵涛  文章来源:敏韬网  点击数1282  更新时间:2007/11/14 13:06:19  文章录入:mintao  责任编辑:mintao

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;

打印本文 打印本文 关闭窗口 关闭窗口