--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