[英]Remove leading spaces and the SQL> tags when spooling
我使用以下代碼使用SQL * Plus進行導出:
Set echo off
Set verify off
Set feedback off
Set heading off
Set termout on
Set pages 50000
Set linesize 1000
Set newpage none
Set colsep ","
spool Z:\ff\ss.csv
Select Client_ID, Cust_ID from cust;
spool off;
exit;
我得到了正確的輸出,但它沒有最好的格式。
SQL> Select Client_ID, Cust_ID from cust;
100,200
200,300
300,400
400,500
SQL>spool off;
如何在值之前擺脫空格?
100,200
如何擺脫輸出文件中的SQL>
語句?
嘗試以下選項:SET TRIMSPOOL ON否則假脫機文件中的每一行都填充空白,直到達到線條大小。
設置TRIMOUT ON否則輸出中的每一行都填充空白,直到達到線條大小。
SET WRAP OFF如果行長於LINESIZE,則截斷該行。 如果lineize足夠大,則不應該發生這種情況。
SET TERMOUT OFF禁止將結果打印到輸出。 這些行仍然寫入假脫機文件。 這可能會大大加快聲明的發布時間。
echo off
僅適用於從文件運行時刪除SQL>提示。 將命令放在名為export_client_data.sql的文件中,並使用@命令運行它們:
SQL>@export_client_data.sql
作為報表工具的SQL * Plus將輸出格式化為表中定義的列寬。 因此,使用TRIM()並不總是按預期工作。 例如,您將在寬度的右側看到填充的VARCHAR列。
通常使用SQL * Plus創建提取,您可以像這樣格式化查詢,而不需要TRIM任何東西:
Select Client_ID || ',' || Cust_ID from cust;
一般,非Oracle回答:
使用ISO / ANSI SQL函數TRIM(Client_ID)
刪除前導(和尾隨)空白。 (有些DBMS使用LTRIM進行領導。)
非標准REPLACE函數可以工作,即REPLACE(Client_ID, 'SQL> ', '')
。
如何在值之前擺脫空格?
使用TRIM 。 例如,
SQL> SELECT TRIM(empno) eno FROM emp;
ENO
-------------------------------------
7369
7499
7521
7566
7654
7698
7782
7788
7839
7844
7876
7900
7902
7934
14 rows selected.
SQL>
如何擺脫輸出文件中的SQL>語句?
最好的方法是使用SILENT選項-s
。
例如,
sqlplus -s scott/tiger@orcl
從文檔 ,
沉默的選擇
-無聲]
禁止顯示所有
SQL*Plus
信息和提示消息,包括命令提示符,命令回顯以及啟動SQL*Plus
時通常顯示的SQL*Plus
。 如果省略用戶名或密碼,SQL*Plus
會提示輸入,但提示不可見! 使用SILENT在另一個程序中調用SQL*Plus
,以便用戶看不到SQL*Plus
的使用。SILENT是一種在CGI腳本或操作系統腳本中使用SQLPLUS -MARKUP命令為Web創建報告的有用模式。
SQL*Plus
橫幅和提示被禁止,並且不會出現在使用SILENT選項創建的報表中。
或者,您也可以這樣做:
set sqlprompt ''
例如,
SQL> set sqlprompt ''
select empno from emp;
EMPNO
----------
7369
7499
7521
7566
7654
7698
7782
7788
7839
7844
7876
7900
7902
7934
14 rows selected.
因此, SQL>
提示符被忽略。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.