oracle输出多行多列数据

mac2022-06-30  119

--方法一  匿名块中直接 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)ismy_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'  thenmy_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年    测试10    160    1000010001    2015年    测试1162    160    1000010001    2016年    测试126    161    1000010001    2016年    测试2*/

转载于:https://www.cnblogs.com/iyoume2008/p/6171067.html

相关资源:JAVA上百实例源码以及开源项目
最新回复(0)