文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

oracle中print_table存储过程实例介绍

2024-04-02 19:55

关注

定义

所谓存储过程(Stored Procedure),就是一组用于完成特定数据库功能的SQL语句集,该SQL语句集经过
编译后存储在数据库系统中。在使用时候,用户通过指定已经定义的存储过程名字并给出相应的存储过程参数
来调用并执行它,从而完成一个或一系列的数据库操作。

一直以来,觉得MySQL中使用\G参数改变输出结果集的显示方式非常好用,尤其是在命令行界面。但是ORACLE数据库没有这个功能,今天在搜索到Tom大师的一篇博文时,发现大师用一个存储过程print_table实现了类似这样的功能。只是我们这些凡夫俗子不知道而已,特意整理在此,方便自己或有需要的人以后查看。 


CREATE OR REPLACE PROCEDURE print_table(p_query IN VARCHAR2) 
AUTHID CURRENT_USER 
IS 
 l_thecursor INTEGER DEFAULT dbms_sql.open_cursor; 
 l_columnvalue VARCHAR2(4000); 
 l_status  INTEGER; 
 l_desctbl  dbms_sql.desc_tab; 
 l_colcnt  NUMBER; 
BEGIN 
 EXECUTE IMMEDIATE 'alter session set nls_date_format=''dd-mon-yyyy hh34:mi:ss'' '; 
 
 dbms_sql.parse(l_thecursor, p_query, dbms_sql.native); 
 
 dbms_sql.describe_columns (l_thecursor, l_colcnt, l_desctbl); 
 
 FOR i IN 1 .. l_colcnt LOOP 
  dbms_sql.define_column (l_thecursor, i, l_columnvalue, 4000); 
 END LOOP; 
 
 l_status := dbms_sql.EXECUTE(l_thecursor); 
 
 WHILE ( dbms_sql.Fetch_rows(l_thecursor) > 0 ) LOOP 
  FOR i IN 1 .. l_colcnt LOOP 
   dbms_sql.column_value (l_thecursor, i, l_columnvalue); 
 
   dbms_output.Put_line (RPAD(L_desctbl(i).col_name, 30) 
         || ': ' 
         || l_columnvalue); 
  END LOOP; 
 
  dbms_output.put_line('-----------------'); 
 END LOOP; 
 
 EXECUTE IMMEDIATE 'alter session set nls_date_format=''dd-MON-rr'' '; 
EXCEPTION 
 WHEN OTHERS THEN 
    EXECUTE IMMEDIATE 
    'alter session set nls_date_format=''dd-MON-rr'' '; 
 
    RAISE; 
END; 
/

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 资料下载
  • 历年真题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     807人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     351人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     314人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     433人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     221人已做
    查看

相关文章

发现更多好内容
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯