SQL> set linesize 100
SQL> col parameter for a40
SQL> col value for a40
http://blog.itpub.net/26844364/viewspace-723141
作為一名oracle dba,sqlplus是我們必須熟練掌握的工具。但是,命令行下的sqlplus有時表現的並不是那么友好,本人搜集了部分關於格式化sqlplus結果的文檔,總結整理如下:
DEFINE _editor=vi -- windows下應改為define _eidtor=notepad
SET serveroutput on size 1000000
SET trimspool on
SET long 5000
SET linesize 120
SET PAGESIZE 16
---- Used by Trusted Oracle
COLUMN ROWLABEL FORMAT A15
----設置SHOW ERRORS 格式
COLUMN LINE/COL FORMAT A8
COLUMN ERROR FORMAT A65 WORD_WRAPPED
---- 設置 SHOW SGA 格式
COLUMN name_col_plus_show_sga FORMAT a24
---- 設置SHOW PARAMETERS 的格式
COLUMN name_col_plus_show_param FORMAT a36 HEADING NAME
COLUMN value_col_plus_show_param FORMAT a30 HEADING VALUE
----設置autotrace的格式
COLUMN id_plus_exp FORMAT 990 HEADING i
COLUMN parent_id_plus_exp FORMAT 990 HEADING p
COLUMN plan_plus_exp FORMAT a60
COLUMN object_node_plus_exp FORMAT a8
COLUMN other_tag_plus_exp FORMAT a29
COLUMN other_plus_exp FORMAT a44
----設置sqlprompt
COLUMN gname new_value gname
SET termout off
select lower(user)||'@'||global_name gname from global_name;
SET sqlprompt '&gname>'
SET termout on
2)、由於表中記錄過長,一條記錄換行顯示,顯得比較錯亂,借鑒tom大師轉列為行的思想,創建如下過程:
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;
l_rowCnt number:=1;
BEGIN
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();
dbms_output.put_line( '[ROW:'||l_rowCnt||']-----------------------------' );
l_rowCnt := l_rowCnt + 1;
end loop;
dbms_sql.close_cursor( l_theCursor );
EXCEPTION
when others then
dbms_sql.close_cursor( l_theCursor );
RAISE;
END print_table;
http://www.zhujiangroad.com/program/Oracle/20923.html
以下的文章主要是對Oracle sqlplus格式化數據的相關實際應用的介紹,我們大家都知道spool 在實際的應用中是很好運用的,但是其在格式化的相關數據上 ,對與set命令是不大熟悉的,於是網上找了下,在此備注下:
- SQL>set colsep ;
域輸出分隔符
- SQL>set newp none
設置查詢出來的數據分多少頁顯示,如果需要連續的數據,中間不要出現空行就把newp設置為none,這樣輸出的數據行都是連續的,中間沒有空行之類的
- SQL>set echo off;
顯示start啟動的腳本中的每個sql命令,缺省為on
- SQL> set echo on
設置運行命令是是否顯示語句
- SQL> set feedback on;
設置顯示“已選擇XX行”
- SQL>set feedback off;
回顯本次sql命令處理的記錄條數,缺省為on即去掉最后的 "已經選擇10000行"
- SQL>set heading off;
輸出域標題,缺省為on 設置為off就去掉了select結果的字段名,只顯示Oracle sqlplus格式化數據
- SQL>set pagesize 0;
輸出每頁行數,缺省為24,為了避免分頁,可設定為0 。
- SQL>set linesize 80;
輸出一行字符個數,缺省為80
- SQL>set numwidth 12;
輸出number類型域長度,缺省為10
- SQL>set termout off;
顯示腳本中的命令的執行結果,缺省為on
- SQL>set trimout on;
去除標准輸出每行的拖尾空格,缺省為off
- SQL>set trimspool on;
去除重定向(spool)輸出每行的拖尾空格,缺省為off
- SQL>set serveroutput on;
設置允許顯示輸出類似dbms_output
- SQL> set timing on;
設置顯示“已用時間:XXXX”
- SQL> set autotrace on-;
設置允許對執行的sql進行分析
- set verify off
可以關閉和打開提示確認信息old 1和new 1的顯示.
sqlplus /nolog @d:\sp.sql
d:\sp.sql內容如下:
- set head off
- set headsep off
- set newp none
- set linesize 100
- set pagesize 10000
- set sqlblanklines OFF
- set trimspool ON
- set termout off
- set feedback off
- spool d:\export.txt
- select NODECODE||&||NODETYPE||&||NODENAME||& from "000".tbnode;
- spool off
- exit
以上的相關內容就是對Oracle sqlplus格式化數據的介紹,望你能有所收獲 。
http://www.net527.cn/shujukuguanli/Oracle/2011/0330/17182.html
1:首先 要 使crt有行的緩沖區,並出現橫線滾動條
a:首 先全局設置:Options - Global Options - Terminal - Appearance - Maximum columns 最大只能設置成1024(推薦256),設置越大越占用內存,並選上show horizontal scroll bar,然后重啟SecureCRT;
b: 然后session設置:Options - Session Options(或者Global Options - General - Default Session - Edit Default Session,這樣就可以設置所有的Session) - Terminal - Emulation - Logical Columns 設置成255(推薦255,主要是因為Sqlplus里Dbms_output.put_line最多顯示255字符限制,這里最大值只能設置成上面 Maximum columns大小,並選上Retain size and font)、Logical rows設置成42(剛好滿屏)、Scrollback buffer設置成5000(這樣縱向滾動屏就可以緩存更多內容,但占內存),另外Terminal - Appearance - Window - 選上Show horizontal scroll bar,然后重新連接。
2: 在crt 中運行sqlplus
未設置前:
運行命令:
set linesize 1000;
col member for a100;
設置后:
這樣 顯示的美觀多了
總結:
col 列名 for(mat) 格式 :可對列進行格式化(a100 是針對varchar 的格式,顯示100個字符,可以a60,a80),
例如:col file_name format a100;
col 列名:顯示當前列的格式
clear column:清除所有列的格式
show linesize :顯示sqlplus的環境變量,可設置在一個login.sql 中,每次運行sqlplus可自動設置了,但需要設置SQLPATH 環境變量指向login.sql。(責任編輯:admin)
http://www.cnblogs.com/sinoJay/archive/2013/02/21/2921364.html
命令 說明
remark 注釋
set headsep 標題換行
ttitle 設置輸出頁的頭標題
btitle 設置輸出頁的尾標題
column 對sql語句中的列進行格式化處理
break on 通知sqlplus在輸出結果中插入空格
compute sum 通知sqlplus計算小計
set linesize(line) 設置sqlplus輸出的最大行寬
-- set pagesize 設置頁面的最大行數
set newpage 設置頁面之間的空行數
spool sqlplus屏幕的文件輸入輸出命令
set pause sqlplus屏幕輸出結果時在頁面之間停頓
save 保存當前session最近的sql語句至指定的文件中
host 返回到操作系統環境類似!
start或@ 執行文件中的命令
edit 使用自定義的編輯器編輯指定文件
define_editor 自定義sqlplus里的編輯器
exit或quit 退出sqlplus
Column column是sqlplus里最實用的一個命令很多時候sql語句輸出的列寬度不合適而影響查看都需要用到這個命令來更改select語句中指定列的寬度和標題。
大部分時候我們可以簡寫column為col即可主要有以下兩種用法
修改列寬度 column c1 format a20
--將列c1字符型顯示最大寬度調整為20個字符
column c1 format 9999999
--將列c1num型顯示最大寬度調整為7個字符修改列標題
column c1 heading c2 --將c1的列名輸出為c2
SQL>col file_name for a50;
就是指file_name這個字段會占據50列如果實際的值超過50列就只能換行了,for 其實是format的縮寫a是什么意思一直沒有明白哦
SQL>set linesize 200
是指整個sqlplus顯示區域最多顯示200列,如果不設置默認是顯示80列
SQL>set linesize 100;
設置行高100
http://f.dataguru.cn/thread-132716-1-1.html
1) 格式調整有以下參數
set echo on/off 是否顯示腳本中的需要執行的命令
set feedback on/off 是否顯示 select 結果之后返回多少行的提示
set linesize n 設置一行最多顯示多少字符,之前就是因為 n 設得過大,導致行與行之間有空白行
set termout on/off 在執行腳本時是否在屏幕上輸出結果,如果 spool 到文件可以將其關閉
set heading on/off 是否顯示查詢結果的列名,如果設置為 off,將用空白行代替,如果要去除該空白行,可以用 set pagesize 0
set pagesize n 設置每頁的行數,將 n 設為 0 可以不顯示所有 headings, page breaks, titles, the initial blank line, and other formatting information
set trimspool on/off 在 spool 到文件時是否去除輸出結果中行末尾的空白字符,之前的隔行可以用該參數去掉,和該參數對應的是 trimout,后者用於屏幕輸出
set trimout on/off 是否去掉屏幕上輸出結果行末尾的空白字符
set space on/off 輸出列間空格數設置
2) 如果需要sqlplus下次啟動的時候自動調整這些格式,可以將上面的設置保存到$ORACLE_HOME/sqlplus/admin/glogin.sql文件
3) 如何將輸出重定向到文件
spool /tmp/sqlplus.output.txt
select [....] from [...]
spool off (只有關閉輸出,才會在輸出文件中看到輸出的內容)
4) 列格式
col column_name format a50 (設置column_name為50個字符寬)
col column_name (顯示列格式)
col column_name noprint (隱藏列)
CLEAR COLUMNS (將所有列的顯示屬性設為缺省值)
BREAK (顯示對BREAK的設置 )
CLEAR BREAKS (刪除BREAK的設置 )