2010-08-24 97 views
8

作爲"Get resultset from oracle stored procedure"問題的後續措施,有沒有一種方法可以顯示SQL Developer中的網格(而不是純文本「腳本輸出」窗口)中返回REFCURSOR的存儲過程的結果?Oracle SQL Developer:在網格中顯示REFCURSOR結果?

編輯:答案幫助,但我仍然有顯示結果中的「查看值」窗口中設置了一個問題:

alt text

列只能擴展少量,可能是由於返回結果的數量。與大小調整控制擴大窗口沒有幫助:

alt text

回答

8

我不認爲你可以用程序。

編輯:感謝DCookie爲簡化我原來的答案。

但是,作爲解決方法,您可以編寫一個調用該過程的函數,然後使用SQL調用該函數。

例如

create or replace function callmyproc 
return sys_refcursor 
IS 
    rc sys_refcursor; 
BEGIN 

    myproc(rc); 

    return rc; 

END; 

然後你就可以調用具有:

select callmyproc() 
    from dual; 

在這個例子中運行時,SQL開發數據網格顯示一個結果,但如果你向右滾動,然後點擊編輯按鈕,你會看到結果在網格中。

+1

或者更簡單一點,創建一個調用該過程並返回refcursor的函數。 – DCookie 2010-08-24 22:35:46

+0

@DCookie - 當然!一個更優雅的方式。謝謝,我修改了我的答案。 – 2010-08-25 07:05:49

+0

感謝您的幫助。我已經接受了答案,但是爲了獲得結果,我將返回「View Value」窗口,其中顯示了點擊編輯按鈕時無法展開的小列。 – technomalogical 2010-08-25 13:01:10