QL> SQL> SQL> SQL> SQL> SQL> SQL> SQL> SQL> SQL> 2 3 4 5 6 7 8 9 10 11 20120131 消費 1583 48627.56
20120131 消費撤銷 33 74.32
20120131 卡啓動記錄 614 0
出現SQL> SQL> SQL> SQL> SQL> SQL> SQL> SQL> SQL> SQL> 2 3 4
只須要在sql腳本開始的時候添加 sqlplus -s user/pass >>!
data
!
可解決
sqlplus 中執行結果
時間 交易類型 交易數 交易金額
-------- --------------- ---------- ----------
20120131 消費 1583 48627.56
20120131 消費撤銷 33 74.32
20120131 卡啓動記錄 614 0
sql命令以下
SQL> select t.inst_date as "時間",cast(d.dict_name as char(15)) as "交易類型", count(1) as "交易數", sum(t.amt_trans/100) as "交易金額"
2 from tbl_txn_his t , tb_ent_dict_info d
3 where t.inst_date >= 20120131
4 and t.inst_date <= 20120131
5 and t.txn_num in (1105, 3105, 7000, 7010)
6 and t.revsal_flag = '0'
7 and t.cancel_flag = '0'
8 and t.resp_code ='00'
9 and t.txn_num = d.dict_id
10 and d.dict_type = 999
11 group by d.dict_name , t.inst_date
12 ;
在不顯示列名,目前的辦法是這樣
select '時間 交易類型 交易數量 金額 ' from dual;
union all;
select t.inst_date as "時間",cast(d.dict_name as char(15)) as "交易類型", count(1) as "交易數", sum(t.amt_trans/100) as "交易金額"
from tbl_txn_his t , tb_ent_dict_info d
where t.inst_date >= 20120131
and t.inst_date <= 20120131
and t.txn_num in (1105, 3105, 7000, 7010)
and t.revsal_flag = '0'
and t.cancel_flag = '0'
and t.resp_code ='00'
and t.txn_num = d.dict_id
and d.dict_type = 999
group by d.dict_name , t.inst_date;
ps:附上Oracle SQL*PLUS命令應用 設置顯示列格式的相關命令
設置列格式的相關命令
1. 改變列的顯示長度
COLUMN column_name FOR[MAT] format
備註:
注意該命令將保持一直生效直至輸入了一個新的格式值或者退出了SQL*PLUS, 其中字段類型能夠爲Char, Varchar2, varchar。
若是SQL*PLUS的WARP變量的值被設置爲"開"(默認值), 那麼字段的內容將會在format命令規定的長度處折行, 不然的話超過規定長度的後續字符將會被截取。
若是你有多個相同顯示屬性的列須要設置,那麼使用column 字段名 like 你想要複製顯示屬性的字段heading 字段名。注意若是不加上後面heading 字段名那麼複製的時候連字段名都會複製過去,顯然不適合通常要求。
2. 格式化NUMBER類型列的顯示
SQL> COLUMN SAL FORMAT $99,990
3. 顯示列值時,若是列值爲NULL值,用text值代替NULL值
COMM NUL[L] text
SQL>COL COMM NUL[L] text
4. 設置一個列的迴繞方式
COLUMN WRA[PPED]|WOR[D_WRAPPED]|TRU[NCATED]
備註:此命令常和format合用,當列值過長時可使用該命令格式話輸出, wrapped根據字符長度控制, word_wrapped根據單詞控制, truncated則直接截取等長字符。
5. 清空當前全部列的設置,恢復成默認格式
CLEAR COLUMNS
下面咱們來看一下這些命令的綜合應用:
SQL> desc testtable;
Name Null? Type
----------------------------------------- -------- ----------------------------
ID NUMBER
NAME VARCHAR2(20)
REMARK VARCHAR2(50)
SALARY NUMBER
SQL> select * from testtable;
ID NAME
---------- ----------------------------------------
REMARK
--------------------------------------------------------------------------------
SALARY
----------
1 paul
99999
如今咱們要對這個輸出進行修改,包括:
①分別設置輸出列的長度爲二、十、六、8
②分別設置輸出列的列名居中
③格式化Salary列的值爲$999,999
④將Remark列的空值替換爲字符串User description
⑤設置Remark列的迴繞方式爲按單詞迴繞
下面咱們來看看這個SQL*PLUS命令應該如何寫:
SQL> column ID justify center
SQL> column Name justify center format a10
SQL> column Remark justify center format a6 NULL 'User description' word_wrapped
SQL> column salary justify right format $999,999
SQL> select * from testtable;
ID NAME REMARK SALARY
---------- ---------- ------ ---------
1 paul User $99,999
descri
ption
看看其中的SQL語句:
Column Remark justify center format a6 NULL 'User description' word_wrapped。
該句設置了:列名居中顯示、列的長度爲6個字符、空值用'User description'代替、按單詞迴繞(因此是在User處折行,而不是在User d出折行,雖然列的長度能夠爲6)
設置頁面及行格式的相關命令
1.設置一行能夠容納的字符數
SQL> SET LIN[ESIZE] {80|n}
若是一行的輸出內容大於設置的一行可容納的字符數,則折行顯示。
2.設置一頁有多少行數
SQL> SET PAGES[IZE] {24|n}
若是設爲0,則全部的輸出內容爲一頁而且不顯示列標題
3.設置頁與頁之間的分隔
SQL> SET NEWP[AGE] {1|n|NONE}
當set newpage 0 時,會在每頁的開頭有一個小的黑方框。
當set newpage n 時,會在頁和頁之間隔着n個空行。
當set newpage none 時,會在頁和頁之間沒有任何間隔。
備註:以上三個命令常常合用, 首先設置每行顯示的最大長度, 再設置每頁有多少行, 最後設置頁間距. 若是要獲取較好格式的話能夠配合Column format命令格式化每一個字段的長度.
下面咱們來實地查看一下上述命令在結果輸出中的應用
SQL> select * from testtable;
ID NAME REMARK
---------- ---------- --------------------------------------------------
REG_DATE SALARY
---------- ----------
1 paul lin
07-6月 -08 5500
2 bob lin common user
06-6月 -08 6500
SQL>
下面咱們要作的就是:
①調整頁面最大顯示長度爲200
②設置每頁只顯示一條記錄
③每頁之間間隔兩個空
SQL> set linesize 200 pagesize 1 newpage 2;
SQL>
SQL> /
1 paul lin 07-6月 -08 5500
2 bob lin common user 06-6月 -08 6500
SQL>
能夠看到頁面的輸出並不讓人滿意(標題和虛線都沒有了),如今咱們使用一種使人比較滿意的設置:
SQL> set linesize 200 pagesize 999 newpage;
SQL>
SQL>
SQL> /
ID NAME REMARK REG_DATE SALARY
---------- ---------- -------------------------------------------------- ---------- ----------
1 paul lin 07-6月 -08 5500
2 bob lin common user 06-6月 -08 6500
SQL>
實際上該命令的最後設置newpage會在每頁的前面加上一個黑色的小方框(在這裏不能顯示),以提示這是新一頁的開始,假如你不想進行任何的提示那麼只要設置newpage爲none就能夠了(你所看到的輸出和如今的如出一轍)。
至於linesize的設置則要考慮屏幕和打印機的大小了。