定义
所谓存储过程(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
软考中级精品资料免费领
- 历年真题答案解析
- 备考技巧名师总结
- 高频考点精准押题
- 资料下载
- 历年真题
193.9 KB下载数265
191.63 KB下载数245
143.91 KB下载数1142
183.71 KB下载数642
644.84 KB下载数2755
相关文章
发现更多好内容猜你喜欢
AI推送时光机oracle中print_table存储过程实例介绍
数据库2024-04-02
mysql的存储过程介绍
数据库2024-04-02
Oracle存储过程Procedure简单介绍(第一部分)
数据库2024-04-02
C#调用Oracle存储过程方法介绍(附源码)
数据库2024-04-02
oracle中存储函数与存储过程的示例
数据库2024-04-02
MySQL存储过程的查询命令介绍
数据库2022-05-18
Oracle存储过程案例详解
数据库2024-04-02
spring中JdbcTemplate操作oracle的存储过程实例代码
数据库2023-05-16
EntityFrameworkCore中执行SQL语句和存储过程的方法介绍
数据库2024-04-02
MySQL存储过程实例讲解
数据库2023-08-11
oracle中创建存储过程,以及存储过程中调用游标
数据库2024-04-02
mysql存储过程与存储函数实例分析
数据库2022-11-30
Oracle存储过程和函数的功能差异及使用技巧介绍
数据库2024-03-03
MySQL的存储过程实例分析
数据库2024-04-02
Oracle存储过程示例:检测表是否存在
数据库2024-03-08
Sql Server存储过程实例分析
数据库2023-06-30
Oracle中的存储过程是什么
数据库2024-04-09
oracle中存储过程如何使用
数据库2024-04-02
oracle中怎么停止存储过程
数据库2024-04-09
数据库中使用存储过程的实例
数据库2024-04-02
咦!没有更多了?去看看其它编程学习网 内容吧