2010-06-10 33 views
3

有沒有辦法顯示sqlplus命令的輸出而不必首先發出spool off命令?Oracle SQLPlus:如何在不必首先發出spool off命令的情況下顯示sqlplus命令的輸出?

我將一個sqlplus會話的結果後臺打印到一個文件,同時拖尾文件。原因在於對於具有很長行的表格,格式更容易從文件中查看。問題是看到輸出我必須發出spool off命令每次我在sqlplus中運行一個命令。

我可以配置sqlplus,這樣我發出spool命令後,所有的輸出都可以直接在文件上看到。

(格式化的行顯示在屏幕上的方式不是一個選項)

感謝

回答

1

如果您正在對多條語句的結果進行假脫機,則可以將假脫機關閉,然後在每條語句之間將其重新打開。當您重新打開後臺處理時,請添加append關鍵字,以便它將繼續保存在同一個文件中而不是覆蓋它。

如果要查看假脫機文件中某個查詢的結果,可以將查詢分解爲多個查詢,以返回特定範圍的數據。這會更慢,但您可以循環假脫機以獲得更快的反饋。

2

SPOOL真正意圖是爲創建SQL的文件* Plus的輸出,不管出於什麼目的:記錄,輸入到另一個進程等等。沒有設施可以在其飛行中查看其輸出。

有很多方法可以解決這個問題,但最簡單的方法就是使用包含數據瀏覽器的IDE,因此不需要尾隨文件。市場上有一些數字,包括Quest's TOADAllround Automation's PL/SQL Developer,但如果您不想購買授權費,那麼您應該看看Oracle's own (free) SQL Developer

1

如果您的問題是無法打開輸出文件(因爲假脫機進程有鎖定),請嘗試將文件輸出複製到另一個文件並打開該文件。

0

我嘗試添加註釋,但由於某種原因,它不保存如此虐待嘗試「回答你的問題」選項:)

我使用的SQLDeveloper但也有在那裏我必須使用sqlplus中,其中的SQLDeveloper情況不可用,那麼我堅持使用普通的舊sqlplus。

還有其他的情況,我會使用sqlplus而不是sqldeveloper純粹是因爲它需要我1/2分鐘才能找到我在sqlplus而不是幾分鐘內用SQLDeveloper查找的內容,因爲它需要很長時間加載。

我已經檢查了輸出刷新前的時間,看起來它確實在一定數量的行後刷新了它。有沒有辦法減少緩衝區,以便更快地刷新它們?

打開文件沒問題即使打開文件,我也看不到輸出,除非我發出「spool off」命令或輸出有幾百行。我正在使用一個名爲baretail的免費程序(http://www.baretail.com)來截斷Windows上的假脫機文件。

感謝

1

因爲它聽起來像你真正的問題在sqlplus是格式化輸出的 - 你可以讓你的SQLPlus窗口更寬和SET LINESIZE因此輸出看起來更好,在sqlplus開始嗎?那麼你可能根本不需要假脫機。

+0

我做了,但輸出大小比sqlplus允許的最大值大。 – ziggy 2010-06-10 15:17:47

相關問題