『壹』 sql plus 中數據怎麼輸出
可以導出到excel中,你可以使用一個工具,plsql developer,很好用的。
把EXCEL倒入資料庫,你可以用pb來做,不過首先你要用把excel變成txt文件,具體方法你可以在網上找,很多的。或者borland的導入導出工具,等等,很容易實現!
當然如果你實在不情願用其他軟體導的話
使用SQLPLUS自帶的SPOOL命令也可以完成。
通過sql*plus輸出xls,html兩種格式文件.
首先創建兩個腳本:
1.main.sql
用以設置環境,調用具體功能腳本
2.功能腳本-get_tables.sql
為實現具體功能之腳本
通過這樣兩個腳本可以避免spool中的冗餘信息,參考:
如何去除SQLPLUS中SPOOL的冗餘信息
示例如下:
1.main.sql腳本:
[oracle@jumper utl_file]$ more main.sql
set linesize 200
set term off verify off feedback off pagesize 999
set markup html on entmap ON spool on preformat off
spool tables.xls
@get_tables.sql
spool off
exit
2.get_tables.sql腳本:
[oracle@jumper utl_file]$ more get_tables.sql
select owner,table_name,tablespace_name,blocks,last_analyzed
from all_tables order by 1,2;
3.執行並獲得輸出:
[oracle@jumper utl_file]$ sqlplus "/ as sysdba" @main
SQL*Plus: Release 9.2.0.4.0 - Proction on Mon Apr 25 10:30:11 2005
Copyright (c) 1982, 2002, Oracle Corporation. All rights reserved.
Connected to:
Oracle9i Enterprise Edition Release 9.2.0.4.0 - Proction
With the Partitioning option
JServer Release 9.2.0.4.0 - Proction
Disconnected from Oracle9i Enterprise Edition Release 9.2.0.4.0 - Proction
With the Partitioning option
JServer Release 9.2.0.4.0 - Proction
[oracle@jumper utl_file]$ ls -l tables.xls
-rw-r--r-- 1 oracle dba 69539 Apr 25 10:30 tables.xls
『貳』 SQL plus 中數據怎麼樣輸出
/ as {sysdba|sysopr}:使用操作系統用戶驗證,以osdba或osopr一員的身份登錄,如驗證通過,被賦予sysdba或sysopr的許可權
使用格式:sqlplus "/ as sysdba"
/nolog:不執行connect操作,直接進入sqlplus操作界面
-s:silent模式,不顯示sqlplus啟動信息和提示符
<:接受sql腳本從標准輸入重定向
<<:立即文檔
4.4.2 提示符命令
accept variable [number|char|date] [format format] [default default] [prompt text] [hide]:接受輸入變數
例子:accept pwd char format a8 prompt Password: hide
column column [format format] [heading heading]:設定對某個域的顯示格式
如果要同時改變某域的輸出長度和標題,必須使用column命令
見emp的定義,name本為char(20),輸出縮為10位,ty本為 char(1),擴張為6位,以便有足夠的空間顯示中文標題。
SQL>column name format a10 heading 姓名;
SQL>column ty format a6 heading 職位;
SQL>column age format 999999 heading 年齡;
SQL>column upd_ts format a14 heading 更新時間;
SQL>select name,ty,age,upd_ts from emp;
show option:顯示SET的選項
spool [filename|off]:輸出重定向文件
timing [start text|show|stop]:定時器
4.4.3 SET選項
autocommit:自動提交insert、update、delete帶來的記錄改變,預設為off
colsep:域輸出分隔符
define:識別命令中的變數前綴符,預設為on,也就是&,碰到變數前綴符,後面的字元串作為變數處理
如果待更新內容包含&(在URL中很常見),而define非設為off,sqlplus會把&後面緊跟的字元串當成變數,提示輸入,這里必須重新輸入&和那個字元串,才能實現正常更新。將define設為off,就不再進行變數判斷。
SQL>set define off;
SQL>update bbs_forum set url=http://www.xxx.com/bbs/show.php&forum_id=1 where forum_id=1;
echo:顯示start啟動的腳本中的每個sql命令,預設為on
feedback:回顯本次sql命令處理的記錄條數,預設為on
heading:輸出域標題,預設為on
linesize:輸出一行字元個數,預設為80
如果一行輸出超過linesize,會回車到第二行,這樣格式就會混亂。
markup html:html格式輸出,預設為off
通常需要與spool配合,否則html輸出就沒有意義。
numwidth:輸出number類型域長度,預設為10
長number類型的域常常因為輸出長度的問題,引起誤會。
pagesize:輸出每頁行數,預設為24
為了避免分頁,可設定為0。
termout:顯示腳本中的命令的執行結果,預設為on
timing:顯示每條sql命令的耗時,預設為off
trimout:去除標准輸出每行的拖尾空格,預設為off
trimspool:去除重定向(spool)輸出每行的拖尾空格,預設為off
4.4.4 例子
以文本形式下載表數據
oracle缺乏將表中數據輸出至文本文件的工具,因此只能利用sqlplus和unix工具做變通的處理
sqlplus -s dbuser/oracle </dev/null
set colsep |;
set echo off;
set feedback off;
set heading off;
set pagesize 0;
set linesize 1000;
set numwidth 12;
set termout off;
set trimout on;
set trimspool on;
spool tmp.txt;
select * from emp;
spool off;
exit
EOF
tr -d < tmp.txt >emp.txt 刪除空格,可選
注意:一定要用spool,如果在命令行中直接用>tmp.txt可能會造成數據缺失,至少在Unixware7上如此
假定某域是char(n),如中間出現回車\n,則下載出的這條記錄的格式將會錯亂,不宜採用此方法
『叄』 如何將SQL執行結果輸出到文本文件中
如何將SQL執行結果輸出到文本文件中
這個方法可以,要在sqlplus的環境里執行,
也可以直接在cmd里執行
sqlplus "username/password@tnaname"@abc.sql > result.log
比如
sqlplus "test1/test@orcl"@test.sql > result.log