
--ORACLE存储过程实现
CREATE OR REPLACE PROCEDURE printjbwenshu (dids in varchar2,
 cur out sys_refcursor )
 AS 
    p_sql varchar2(2000);
    F1 VARCHAR2(50);--文件_盒号
    JH NUMBER; --文件_件号
    YS NUMBER;   --文件_页数
    ND VARCHAR2(40);  --文件_年度
    BGQX VARCHAR2(12); --文件_保管期限
    QZH VARCHAR2(32);   --文件_全宗号
    type rc_type is ref cursor;
    mycur rc_type;
    BEGIN
    p_sql:='delete from  volprint';
    Execute Immediate p_sql;
    p_sql:='insert into volprint(F1,JH,YS,ND,BGQX,QZH) select F1,min(JH),max(JH),ND,BGQX,QZH from D_FILE1 where did in ('||dids||') group by F1,BGQX,ND,QZH';
    Execute Immediate p_sql;
    open cur for 'select F1 as '||'"文件_盒号"' ||',JH as '  ||'"文件_件号"'||', YS as '||'"文件_页数"' ||',ND as '||'"文件_年度"'|| '
     ,BGQX as '  ||'"文件_保管期限"'||',QZH as '  ||'"文件_全宗号"'||'from volprint';
    end;
--SQL存储过程实现
alter procedure printjbwenshu(@dids varchar(2000)) as
        declare @SQL nvarchar(2000);
 create table #Tmpprint (
        文件_盒号 varchar(300),
 文件_件号 varchar(300),
 文件_页数 varchar(50), 
        文件_年度 varchar(50), 
        文件_保管期限 varchar(50),
        文件_全宗号 varchar(50),
        文件_公文类型 varchar(50)         
 ); 
        set @SQL='insert into #Tmpprint(文件_盒号,文件_件号,文件_页数,文件_年度,文件_保管期限,文件_全宗号,文件_公文类型) 
        select f4,min(jh),max(jh),nd,bgqx,qzh,f3  from D_FILE30 where did in (' + @dids + ') group by bgqx,nd,f4 ,qzh,f3 ';  
 exec sp_executesql  @SQL 
        select * from #Tmpprint