请教sqlplus的格式化输出

[复制链接]
查看11 | 回复3 | 2007-10-20 08:38:44 | 显示全部楼层 |阅读模式
看到各路大神在发帖时,sql查询结果都非常规整,自己写个sql查询,输出像是狗爬,非常不专业。
望各路大神不惜赐教啊。网上我也找了相关的格式化输出的例子。主要是通过 set lin=数值;实现。但是看起来还是不理想,经常折行。没大神们写的看起来好啊。

回复

使用道具 举报

千问 | 2007-10-20 08:38:44 | 显示全部楼层
关键是要用col设置列大小,下面是个例子. 详情见这里 http://docs.oracle.com/cd/B19306_01/server.102/b14357/ch6.htm
SET NEWPAGE 0
SET SPACE 0
SET LINESIZE 80
SET PAGESIZE 0
SET ECHO OFF
SET FEEDBACK OFF
SET VERIFY OFF
SET HEADING ON
SET MARKUP HTML OFF SPOOL OFF
SET HEAD ON
col INDEX_NAME format a40
col INDEX_SIZE format 999999.999
col TABLESPACE_NAME format a20
col COMPRESSION format a10
col VISIBILITY format a10
col owner format a10
col TABLE_NAME format a40


回复

使用道具 举报

千问 | 2007-10-20 08:38:44 | 显示全部楼层
**********************************
  配置环境脚本
**********************************
cd $ORACLE_HOME/sqlplus/admin
vi glogin.sql

define _editor=vi
set serveroutput on size 1000000
set trimspool on
set long 5000
set linesize 1000
set pagesize 9999
column plan_plus_exp format a80
column global_name new_value gname
set termout off
define gname=idle
column global_name new_value gname
select lower(user) || '@' || substr( global_name, 1, decode( dot, 0, length(global_name), dot-1) ) global_name
from (select global_name, instr(global_name,'.') dot from global_name );
set sqlprompt '&gname> '
set termout on
下面对这些脚本做些说明:
define _editor=vi:设置sql*plus使用的默认编辑器。可以把默认编辑器设置为你最喜欢的文本编辑(而不是字处理器),如记事本(Notepad)或emacs。
set serveroutput on size 1000000:这会默认地打开dbms_output(这样就不必每次再键入这个命令了)。另外也将默认缓冲区大小设置得尽可能大。
set trimspool on:假脱机输出文本时,会去除文本行两端的空格,而且行宽不定。如果设置为OFF(默认设置),假脱机输出的文本行宽度则等于所设置的LINESIZE。
set long 5000:设置选对LONG或CLOB列时显示的默认字节数
linesize 1000:设置sql*plus显示的文本宽为1000字符。
set pagesize 9999:pagesize可以控制sql*plus多久打印一次标题,这里将pagesize设置为一个很大的数(所以每页只有一组标题)。
column plan_plus_exp format a80:设置由autotrace得出的解释计划输出(explain plan output)的默认宽度。A80通常足以放下整个计划。
set termout on/off:是控制@方式执行之返回的
define gname=idle:定义一个变量gname,值为idle。
column global_name new_value gname:告诉sql*plus取得global_name列中的最后一个值,并将这个值赋给替换变量gname。
select lower(user) || '@' || substr( global_name, 1, decode( dot, 0, length(global_name), dot-1) ) global_name
from (select global_name, instr(global_name,'.') dot from global_name ); 取得global_name的值
set sqlprompt '&gname> ' :通常用来设置SQL提示符的方法

回复

使用道具 举报

千问 | 2007-10-20 08:38:44 | 显示全部楼层
guoyJoe 发表于 2013-3-30 06:58
**********************************
  配置环境脚本
**********************************

谢谢大侠
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行