create or replace procedure P_KHCF_JQ(v_in_tjkssj in varchar2,
                                      v_in_tjjssj in varchar2) as
  tjkssj                      varchar2(60) := v_in_tjkssj; --统计开始时间
  tjjssj                      varchar2(60) := v_in_tjjssj; --统计结束时间
  v_Cursor                    Number; --游标
  v_Sj                        t_Khcf_Cfg.Cfsj_Col%Type; --配置表-时间
  v_transactprimarytout       t_khcq_ws.transactprimarytout%type; --呈请人
  v_in_transactprimarytout    varchar2(3000); --累加同一案件中所有的呈请人
  v_final_transactprimarytout varchar2(3000); --剔除了同一案件中重复的人员后的呈请人
  v_Transactunit              t_Khcq_Ws.Transactunit%Type; --配置表-人员单位
  v_Gxmb                      Varchar2(120); --更新目标表
  --v_Xmbh                      Varchar2(60); --项目编号
  v_Ab   t_Khcq_Aj.Ab%Type; --配置表-案别
  v_Ajmc t_Khcq_Aj.Ajmc%Type; --配置表案件名称
  --v_Ajbh                      t_Khcq_Ws.Ajbh%Type; --配置表-案件编号
  v_Writid t_Khcq_Ws.Writid%Type; --配置表-文书ID
  v_Wscode t_Khcq_Ws.Wscode%Type;
   v_Sl_Lrsj T_KHCQ_JQ.Sl_Lrsj%type;
     v_cfz01  number(11, 4);
  v_cfz02  number(11, 4);
  v_cfz03  number(11, 4);
  v_cfz04  number(11, 4);
  v_cfz05  number(11, 4);
  v_cfv01  varchar(255);
  v_cfv02  varchar(255);
  v_cfv03  varchar(255);
  v_cfv04  varchar(255);
  --v_cfv05  varchar(255);   cursor all_contacts_cur(v_in_tjkssj varchar2,v_in_tjjssj varchar2) is   select t.sl_lrsj, t.sljjry, t.departmentcode
   from T_KHCQ_JQ t
     where nvl(deleteflag, '0') = '0'
   and t.sl_lrsj between to_date(v_in_tjkssj, 'yyyy-mm-dd hh24:mi:ss') and
    to_date(v_in_tjjssj, 'yyyy-mm-dd hh24:mi:ss');        /********************************************************************************
  * 功能:处理办案民警岗位中的打击犯罪团伙指标
  * 状态:已测试
  * 作者:ouzhiyi
  * 创建日期:2009.2.22
  * 修改人     修改时期       修改原因
  *
  *********************************************************************************/
begin
 -- v_rows := 50;
  --v_Gxmb := 't_khcf_asj_xsaj_' || Substr(tjjssj, 3, 2);
     open all_contacts_cur;     
    loop     
        fetch all_contacts_cur bulk collect into v_Sl_Lrsj,v_SLJJRY,v_DEPARTMENTCODE limit 256;     
        for i in 1..v_Sl_Lrsj.count loop --遍历**     
            --用 v_id(i)/v_phone(i)/v_re(i) 取出字段值来执行你的业务逻辑     
 null; --这里只放置一个空操作,只为测试循环取数的效率    
        end loop;     
        exit when all_contacts_cur%notfound; --exit 不能紧接 fetch 了,不然会漏记录     
    end loop;     
    close all_contacts_cur;     
end P_KHCF_JQ;
报错信息:Compilation errors for PROCEDURE JXKH.P_KHCF_JQError: PLS-00103: 出现符号 ""在需要下列之一时:
        begin function package pragma
          procedure subtype type use <an identifier>
          <a double-quoted delimited-identifier> form current cursor
       符号 "" 被忽略。
Line: 30
Text:   cursor all_contacts_cur(v_in_tjkssj varchar2,v_in_tjjssj varchar2) isError: PLS-00103: 出现符号 ""在需要下列之一时:
        begin function package pragma
          procedure subtype type use <an identifier>
          <a double-quoted delimited-identifier> form current cursor
Line: 35
Text: to_date(v_in_tjjssj, 'yyyy-mm-dd hh24:mi:ss');      

解决方案 »

  1.   

    create or replace procedure P_KHCF_JQ(v_in_tjkssj in varchar2, 
                                          v_in_tjjssj in varchar2) as 
      tjkssj                      varchar2(60) := v_in_tjkssj; --统计开始时间 
      tjjssj                      varchar2(60) := v_in_tjjssj; --统计结束时间 
      v_Cursor                    Number; --游标 
      v_Sj                        t_Khcf_Cfg.Cfsj_Col%Type; --配置表-时间 
      v_transactprimarytout      t_khcq_ws.transactprimarytout%type; --呈请人 
      v_in_transactprimarytout    varchar2(3000); --累加同一案件中所有的呈请人 
      v_final_transactprimarytout varchar2(3000); --剔除了同一案件中重复的人员后的呈请人 
      v_Transactunit              t_Khcq_Ws.Transactunit%Type; --配置表-人员单位 
      v_Gxmb                      Varchar2(120); --更新目标表 
      --v_Xmbh                      Varchar2(60); --项目编号 
      v_Ab  t_Khcq_Aj.Ab%Type; --配置表-案别 
      v_Ajmc t_Khcq_Aj.Ajmc%Type; --配置表案件名称 
      --v_Ajbh                      t_Khcq_Ws.Ajbh%Type; --配置表-案件编号 
      v_Writid t_Khcq_Ws.Writid%Type; --配置表-文书ID 
      v_Wscode t_Khcq_Ws.Wscode%Type; 
      v_Sl_Lrsj T_KHCQ_JQ.Sl_Lrsj%type; 
      v_cfz01  number(11, 4); 
      v_cfz02  number(11, 4); 
      v_cfz03  number(11, 4); 
      v_cfz04  number(11, 4); 
      v_cfz05  number(11, 4); 
      v_cfv01  varchar(255); 
      v_cfv02  varchar(255); 
      v_cfv03  varchar(255); 
      v_cfv04  varchar(255); 
      --v_cfv05  varchar(255);    cursor all_contacts_cur is   select t.sl_lrsj
           , t.sljjry
           , t.departmentcode 
      from   T_KHCQ_JQ t 
      where  nvl(deleteflag, '0') = '0' 
      and    t.sl_lrsj between to_date(tjkssj, 'yyyy-mm-dd hh24:mi:ss')
                       and to_date(tjjssj, 'yyyy-mm-dd hh24:mi:ss');         /******************************************************************************** 
      * 功能:处理办案民警岗位中的打击犯罪团伙指标 
      * 状态:已测试 
      * 作者:ouzhiyi 
      * 创建日期:2009.2.22 
      * 修改人    修改时期      修改原因 
      * 
      *********************************************************************************/ 
      begin 
      -- v_rows := 50; 
      --v_Gxmb := 't_khcf_asj_xsaj_' || Substr(tjjssj, 3, 2); 
          open all_contacts_cur;      
          loop      
             fetch all_contacts_cur bulk collect into v_Sl_Lrsj,v_SLJJRY,v_DEPARTMENTCODE limit 256;      
             for i in 1..v_Sl_Lrsj.count loop --遍历**      
            --用 v_id(i)/v_phone(i)/v_re(i) 取出字段值来执行你的业务逻辑      
                null; --这里只放置一个空操作,只为测试循环取数的效率     
             end loop;      
             exit when all_contacts_cur%notfound; --exit 不能紧接 fetch 了,不然会漏记录      
          end loop;      
       close all_contacts_cur;      end P_KHCF_JQ;