簡體   English   中英

假脫機時刪除前導空格和SQL>標記

[英]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;
  1. 如何在值之前擺脫空格?

    100,200

  2. 如何擺脫輸出文件中的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回答:

  1. 使用ISO / ANSI SQL函數TRIM(Client_ID)刪除前導(和尾隨)空白。 (有些DBMS使用LTRIM進行領導。)

  2. 非標准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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM