ORACLE存储过程中打印所有表数据的方法

前几天面试的时候,人家出了个面试题,说通过存储过程打印表里面的数据,从没做过纸上手写存储过程的,结果一脸懵逼,估计要凉,只能怪自己平时不细心吧,下来研究了之后做个记录,结构和过程都不复杂。

过程中参考https://blog.csdn.net/wohaqiyi/article/details/81607172

CREATE OR REPLACE PROCEDURE pro_cursor1(tbname VARCHAR2 )IS

   TYPE curtype IS REF CURSOR;
   cur curtype;
   dm varchar2(100);
   mc varchar2(100);

   cursor_sql varchar2(200):='select dm代码,mc名称 from '|| tbname;

 Begin
   --open cur for cursor_sql;
   open cur for cursor_sql;
   fetch cur into dm,mc;
   loop
    dbms_output.put_line(dm||','||mc);
   end loop;
   close cur;
 end;

 

 


create or replace procedure pro_cursor2 is
    cursor cur is
           select dm代码,mc名称 from dapan_2020_05_29 t where rownum<20;
    v_dm varchar2(100);
    v_mc varchar2(100);
begin
  open cur;
  loop
    fetch cur into v_dm,v_mc ;
    exit when cur%NOTFOUND;
    dbms_output.put_line(v_dm||','||v_mc);
  end loop;
  close cur;
end;

 

 

create or replace procedure pro_cursor3 is
    cursor cur is
           select dm代码,mc名称 from dapan_2020_05_29 t where rownum<20;
    currow cur%rowtype;
begin
  open cur;
  loop
    fetch cur into currow;
    exit when cur%NOTFOUND;
    dbms_output.put_line(currow.dm代码||','||currow.mc名称);
  end loop;
  close cur;
end;

 

 

create or replace procedure pro_cursor4 is
    cursor cur is
           select dm代码,mc名称 from dapan_2020_05_29 t where rownum<20;
    currow cur%rowtype;
begin
  for currow in cur loop
    exit when cur%NOTFOUND;
    dbms_output.put_line(currow.dm代码||','||currow.mc名称);
  end loop;
end;

 

 

create or replace procedure pro_cursor5 is
begin
  for currow in (select dm代码,mc名称 from dapan_2020_05_29 t where rownum<20) loop
    dbms_output.put_line(currow.dm代码||','||currow.mc名称);
  end loop;
end;

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

末点

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值