[20210428]改进pr.sql脚本.txt --//tanel poder提供一个脚本pr.sql,用来实现显示信息的纵向显示。例子: SCOTT@book> select * from dept where deptno=10 2 @ pr Pivoting output using Tom Kyte's printtab.... ============================== DEPTNO : 10 DNAME : ACCOUNTING LOC : NEW YORK PL/SQL procedure successfully completed. --//第一次看到这样的使用是上https://connor-mcdonald.com/网站,不知道对方如何实现的。后来对方给我一个脚本,好像是windows --//版本我修改一下,适合linux使用。我这才想起来tanel poder的脚本包里面有。 $ cat prxx.sql . set termout off def _pr_tmpfile=/tmp/pr.out store set &_pr_tmpfile.set replace set termout on set serverout on size 1000000 termout off echo off save &_pr_tmpfile replace set termout on 0 c clob := q'\ 0 declare 999999 \';; 999999 l_theCursor integer default dbms_sql.open_cursor;; 999999 l_columnValue varchar2(4000);; 999999 l_status integer;; 999999 l_descTbl dbms_sql.desc_tab;; 999999 l_colCnt number;; 999999 begin 999999 dbms_sql.parse( l_theCursor, c, dbms_sql.native );; 999999 dbms_sql.describe_columns( l_theCursor, l_colCnt, l_descTbl );; 999999 for i in 1 .. l_colCnt loop 999999 dbms_sql.define_column( l_theCursor, i, 999999 l_columnValue, 4000 );; 999999 end loop;; 999999 l_status := dbms_sql.execute(l_theCursor);; 999999 while ( dbms_sql.fetch_rows(l_theCursor) > 0 ) loop 999999 dbms_output.put_line( '==============================' );; 999999 for i in 1 .. l_colCnt loop 999999 dbms_sql.column_value( l_theCursor, i, 999999 l_columnValue );; 999999 dbms_output.put_line 999999 ( rpad( l_descTbl(i).col_name, 999999 30 ) || ': ' || l_columnValue );; 999999 end loop;; 999999 end loop;; 999999 exception 999999 when others then 999999 dbms_output.put_line(dbms_utility.format_error_backtrace);; 999999 raise;; 999999 end;; / set termout off @&_pr_tmpfile.set get &_pr_tmpfile nolist host rm &_pr_tmpfile set termout on --//今天我自己再改一下在每个字段前面加上序号的功能: $ cat prxxn.sql . set termout off def _pr_tmpfile=/tmp/pr.out store set &_pr_tmpfile.set replace set termout on set serverout on FORMAT WRAPPED size 1000000 termout off echo off save &_pr_tmpfile replace set termout on 0 c clob := q'\ 0 declare 999999 \';; 999999 l_theCursor integer default dbms_sql.open_cursor;; 999999 l_columnValue varchar2(4000);; 999999 l_status integer;; 999999 l_descTbl dbms_sql.desc_tab;; 999999 l_colCnt number;; 999999 begin 999999 dbms_sql.parse( l_theCursor, c, dbms_sql.native );; 999999 dbms_sql.describe_columns( l_theCursor, l_colCnt, l_descTbl );; 999999 for i in 1 .. l_colCnt loop 999999 dbms_sql.define_column( l_theCursor, i, 999999 l_columnValue, 4000 );; 999999 end loop;; 999999 l_status := dbms_sql.execute(l_theCursor);; 999999 while ( dbms_sql.fetch_rows(l_theCursor) > 0 ) loop 999999 dbms_output.put_line( '==================================' );; 999999 for i in 1 .. l_colCnt loop 999999 dbms_sql.column_value( l_theCursor, i, 999999 l_columnValue );; 999999 dbms_output.put_line 999999 (lpad(i,3)||' '|| rpad( l_descTbl(i).col_name, 999999 30 ) || ': ' || l_columnValue );; 999999 end loop;; 999999 end loop;; 999999 exception 999999 when others then 999999 dbms_output.put_line(dbms_utility.format_error_backtrace);; 999999 raise;; 999999 end;; / set termout off @&_pr_tmpfile.set get &_pr_tmpfile nolist host rm &_pr_tmpfile set termout on --//注意第一行的点可不是多余的,不要删除。 --//测试如下: SCOTT@book> select * from emp where rownum=1 2 @ prxxn ================================== 1 EMPNO : 7369 2 ENAME : SMITH 3 JOB : CLERK 4 MGR : 7902 5 HIREDATE : 1980-12-17 00:00:00 6 SAL : 800 7 COMM : 8 DEPTNO : 20 PL/SQL procedure successfully completed.
[20210428]改进pr.sql脚本.txt
来源:这里教程网
时间:2026-03-03 16:38:36
作者:
编辑推荐:
- rac恢复到单机03-03
- [20210428]改进pr.sql脚本.txt03-03
- [20210429]文件头块不会缓存.txt03-03
- Oracle 11.2 DataGuard RAC To RAC搭建03-03
- 【SWINGBENCH】使用SwingBench对Oracle压力测试03-03
- 【Dataguard】Oracle多租户环境对Dataguard的影响03-03
- 绑定变量窥视测试案例03-03
- 内存泄漏引起的 数据库性能问题03-03
下一篇:
相关推荐
-
雷神推出 MIX PRO II 迷你主机:基于 Ultra 200H,玻璃上盖 + ARGB 灯效
2 月 9 日消息,雷神 (THUNDEROBOT) 现已宣布推出基于英
-
制造商 Musnap 推出彩色墨水屏电纸书 Ocean C:支持手写笔、第三方安卓应用
2 月 10 日消息,制造商 Musnap 现已在海外推出一款 Oce
热文推荐
- rac恢复到单机
rac恢复到单机
26-03-03 - [20210429]文件头块不会缓存.txt
[20210429]文件头块不会缓存.txt
26-03-03 - 【SWINGBENCH】使用SwingBench对Oracle压力测试
【SWINGBENCH】使用SwingBench对Oracle压力测试
26-03-03 - 如何用h5个人简历模板来制作自己的简历
如何用h5个人简历模板来制作自己的简历
26-03-03 - qq相册照片怎么批量下载到手机,qq相册批量下载功能
qq相册照片怎么批量下载到手机,qq相册批量下载功能
26-03-03 - 【RAT】Oracle Real Application Testing(真用应用测试)介绍
- Oracle数据库宕机案例分享
Oracle数据库宕机案例分享
26-03-03 - Oracle 11.2.0.4 本地/远程登录慢的问题
Oracle 11.2.0.4 本地/远程登录慢的问题
26-03-03 - 从Oracle 11.2.0.4 BUG到Oracle子查询展开分析
从Oracle 11.2.0.4 BUG到Oracle子查询展开分析
26-03-03 - Oracle学习路线
Oracle学习路线
26-03-03
