2014-05-24 394 views
1

我使用Oracle SQL Developer腳本來執行SELECT,在查詢結果窗口中顯示結果。然後,我將結果複製/粘貼到Excel模板中進行報告。Oracle SQL Developer - 使用PLSQL在查詢結果窗口中顯示SELECT輸出

我想用PLSQL塊替換腳本,以允許循環等。問題在於簡單的SELECT FROM(沒有INTO)在PLSQL中似乎不起作用。

是否有任何方法可以使用PLSQL在窗口中顯示選擇結果,我可以從中複製/粘貼?

注意:我不允許使用EXPORT直接創建文本文件,這比複製/粘貼好得多。還有一個標準的Oracle軟件包直接從PLSQL輸出到文件,但我也不能使用它。

這篇文章被標記爲另一篇文章的副本,其中一篇文章詢問如何從不在PL/SQL塊中的SELECT獲取輸出。我知道如何做到這一點,事實上這正是我目前正在做的,正如我在OP中提到的那樣。正如我所說,沒有INTO的SELECT在PL/SQL中失敗。

+0

我鏈接到的線程沒有回答上面的問題,但它回答了你應該問的問題:我如何從SQL Developer獲取數據到Excel中。我不確定實際上有多少限制,但是生成CSV輸出的技巧可以將'n'paste'切割成文本文件,然後您可以在Excel中打開該文本,這種技術幾乎適用於所有場景。 – APC

回答

0

您可以創建一個臨時表:

CREATE GLOBAL TEMPORARY TABLE table_name (
    (column1 datatype null/not null, 
     column2 datatype null/not null, 
     ... 
) ON COMMIT DELETE ROWS; 

然後在每個循環中,您可以在其中插入您的數據:

INSERT INTO table_name 
    (SELECT statement); 

最後,你可以使用select語句的臨時表中讀取數據:

SELECT * FROM table_name 

,然後刪除表:

drop table table_name; 
+1

這不回答這個問題。這也不是Oracle語法,所以這種方法可能適用於您使用的任何數據庫。創建永久數據庫對象並不是解決像這樣的接口問題的最佳方式。 – APC

+0

你說得對。所以我糾正了我的答案。謝謝你的評論。 –

+0

我很欣賞答案,但不幸的是,它不回答這個問題,我可能沒有解釋清楚。 SELECT * FROM table_name;命令不能從PL/SQL運行,所以它會把我放在完全相同的地方。 – user2781942

相關問題