oracle输出多行多列数据
--方法一 匿名块中直接 dbms_output输出
declare
v_sql varchar2(200);
v_cursor sys_refcursor;
type v_type is record(
n1 varchar2(30));
v_rows v_type;
begin
v_sql := ' select substr(tax_organ_name,1,2) from sk_tax_organ n where n.up_tax_organ=''cde5a0d73628497d84592c49be670ca5'' order by n.tax_organ_code asc';
open v_cursor for v_sql;
for i in 1 .. 36 loop
fetch v_cursor
into v_rows;
dbms_output.put_line('1000' || to_char(i) || '0001' || v_rows.n1 || '国税' ||
chr(10) || '1000' || to_char(i) || '0002' ||
v_rows.n1 || '地税');
end loop;
close v_cursor;
end;
/*
100010001北京国税
100010002北京地税
*/
--方法二 存储过程中 游标输出结果集
create or replace procedure zxrs_hz (v_kssj varchar2,v_zzsj varchar2,v_jgbs varchar2,v_yyid varchar2,v_nfyfsj varchar2,my_cur out sys_refcursor)
is
my_sql varchar2(20000);
my_errmsg varchar2(50);
begin
if v_nfyfsj='year' then
my_sql:='SELECT SUM(A.YY_ZXRS) AS "num", A.yym ,A.ZFWM, to_char(create_date,''yyyy'')||''年'' TIMEQ, B.APPLYNAME AS "yyname" FROM T_ZXRS_LOG_'||v_jgbs||' A INNER JOIN T_MAPPING_ADDRESS b ON b. ID = A.yym where create_date >=
to_date('''||v_kssj||''', ''yyyy-mm-dd hh24:mi:ss'') and create_date <=
to_date('''||v_zzsj||''', ''yyyy-mm-dd hh24:mi:ss'') and a.yym in ('||v_yyid||') GROUP BY a.yym, a.ZFWM, B.APPLYNAME,to_char(create_date,''yyyy'')';
open my_cur for my_sql;
elsif v_nfyfsj='month' then
my_sql:='SELECT SUM(A.YY_ZXRS) AS "num", A.yym ,A.ZFWM, to_char(create_date,''yyyy'')||''年''||to_char(create_date,''mm'')||''月'' TIMEQ, B.APPLYNAME AS "yyname" FROM T_ZXRS_LOG_'||v_jgbs||' A INNER JOIN T_MAPPING_ADDRESS b ON b. ID = A.yym where create_date >=
to_date('''||v_kssj||''', ''yyyy-mm-dd hh24:mi:ss'') and create_date <=
to_date('''||v_zzsj||''', ''yyyy-mm-dd hh24:mi:ss'') and a.yym in ('||v_yyid||') GROUP BY a.yym, a.ZFWM, B.APPLYNAME,to_char(create_date,''yyyy'')||''年''||to_char(create_date,''mm'')||''月''';
open my_cur for my_sql;
elsif v_nfyfsj='day' then
my_sql:='SELECT SUM(A.YY_ZXRS) AS "num", A.yym ,A.ZFWM, to_char(create_date,''yyyy'')||''年''||to_char(create_date,''mm'')||''月''||to_char(create_date,''dd'')||''日'' TIMEQ, B.APPLYNAME AS "yyname" FROM T_ZXRS_LOG_'||v_jgbs||' A INNER JOIN T_MAPPING_ADDRESS b ON b. ID = A.yym where create_date >=
to_date('''||v_kssj||''', ''yyyy-mm-dd hh24:mi:ss'') and create_date <=
to_date('''||v_zzsj||''', ''yyyy-mm-dd hh24:mi:ss'') and a.yym in ('||v_yyid||') GROUP BY a.yym, a.ZFWM, B.APPLYNAME,to_char(create_date,''yyyy'')||''年''||to_char(create_date,''mm'')||''月''||to_char(create_date,''dd'')||''日''';
open my_cur for my_sql;
end if;
exception when others then
my_errmsg:=sqlcode;
end;
/*
0 160 1000010001 2014年 测试1
0 160 1000010001 2015年 测试1
162 160 1000010001 2016年 测试1
26 161 1000010001 2016年 测试2
*/
oracle输出多行多列数据的更多相关文章
- FPGA计算3行同列数据之和
实验:FPGA计算3行同列数据之和 实验要求:PC机通过串口发送3行数据(一行有56个数据,3行共有56*3=168个数据)给FPGA,FPGA计算3行同一列数据的和,并将结果通过串口返回给上位机. ...
- Python学习随笔:使用xlwings设置和操作excel多行多列数据以及设置数据字体颜色填充色对齐方式的方法
☞ ░ 前往老猿Python博文目录 ░ 在前面老猿的文章中,<Python学习随笔:使用xlwings读取和操作Excel文件>.<Python学习随笔:使用xlwings读取和操 ...
- Excel 一张表最多能装下多少行多少列数据?
一个工作簿可以装下255张,那么每张工作表可以装下多少行多少列数据呢? 1.任意打开或新建一个Excel文档. 2.在文档中,找到其左上角的"文件"按钮,点击选择"选项& ...
- 【面试总结-编程】多行两列数据,实现同key的value求和并输出
一个文件,两列,多行. 第一列是字母,第二列是数字,同列数据之间通过空格分割. 统计首列字母相同的第二列之和. 样例输入: A 5 B 6 OO 7 A 6 A 2 OO 2 输出: A:13 B:6 ...
- Android Webservices 返回多行多列数据(Dataset)
对于之前从事.net或者java开发人员,习惯了从后台获取网格数据(多行多列DataTable),但转行从事android开发,难免会不习惯 Android调用Webservice时,如果返回值是一个 ...
- oracle中的行转列,列转行
行转列:源表: 方法1:case when select y,sum(case when q=1 then amt end) q1,sum(case when q=2 then amt end) q2 ...
- oracle sql 字段行转列
数据库中原先如图: 现在要吧WHMM行转列: conncect by用于确定列的个数
- easyUI datagrid 多行多列数据渲染异常缓慢原因以及解决方法
原因 最近,在优化之前公司帮联想(外包)做的一个老的后台管理系统,由于项目是基于easy UI框架,页面是后台用jsp实现的,再加上在公司推行前后端分离的实践,大部分项目都基于vue采用前后端分离去实 ...
- mssql sqlserver 不固定行转列数据(动态列)
转自:http://www.maomao365.com/?p=5471 摘要: 下文主要讲述动态行列转换语句,列名会根据行数据的不同, 动态的发生变化 ------------------------ ...
随机推荐
- 【VLFeat】使用matlab版本计算HOG
下载 vlfeat-0.9.18 http://www.vlfeat.org cd D:\program\vlfeat-0.9.18\toolbox
- opencv保存选择图像中的区域(二)
/* * ===================================================================================== * * Filen ...
- php学习小记1
1.回调函数 c语言中的回调函数:通过函数指针调用的函数.将函数a的指针(地址)作为参数传递给另一个函数b,当函数a的指针被b用来调用a时,这就是回调函数,在特定的事件或条件发生时,由另外一方调用,用 ...
- 尝试获取TextBox_TextChanged事件订阅列表过程
项目中有用到动态事件绑定[多种事件],由于可触发多次绑定,所以想获取订阅列表来判断是否已绑定事件,从而避免问题! 查找相关资料得知Delegate的GetInvocationList方法可以获取委托的 ...
- 问题-Delphi为什么不能连接oracle
问题现象:delphi 为什么不能连接oracle 问题处理:加一句OraSession1.Options.Net := True;
- JS自定义事件(Dom3级事件下)
原文出处: http://www.w3cfuns.com/notes/11861/e21736a0b15bceca0dc7f76d77c2fb5a.html . 我拿出作者中的一段,感谢作者原创. ...
- SSIS执行SQL任务时加入参数
昨天开发的SSIS包中,获取ERP系统parttran表时,数据量比较大,达到255万多,因为SQL执行的关系,致使处理时效率很慢,所以就想用增量更新的方法处理该表数据.这是增量更新的SQL任务集合, ...
- 微信开发第7章 通过accesstoken获取用户黑名单列表
获取黑名单列表可以查看文档 http://mp.weixin.qq.com/wiki?t=resource/res_main&id=mp1471422259_pJMWA&token=& ...
- C#使用参数数组
重载,是指在相同的作用域内,声明多个同名的方法.用以对不同类型或数量的参数的参数执行相同的操作.比如,可以求两个或者三个 int类型数中的最大值,我们可以编写这样的方法实现: class Util { ...
- Objective-C中一种消息处理方法performSelector: withObject:
Objective-C中调用函数的方法是“消息传递”,这个和普通的函数调用的区别是,你可以随时对一个对象传递任何消息,而不需要在编译的时候声明这些方法.所以Objective-C可以在runtime的 ...