2009-07-03 12 views

cevap

6

Sonuç kaydındaki imleç alanlarına çift tıklayın. Sağ tarafta bir "..." simgesi var. Bunu tıklayın ve içeriğini göreceksiniz.

+1

PL/SQL Developer için de geçerlidir. –

5

Merhaba, bunun bir süre önce sorulduğunu biliyorum, ancak bunu daha önce anladım ve başkalarına yardım edebilirim. Tam olarak aradığınız şeyin tam olarak bu olduğundan emin değilsiniz, ancak saklı proc olarak adlandırıyorum ve çıktıyı SQL Developer'da görüyorum.
SQL Developer'da proc'yi görüntülerken sağ tıklayın ve 'Çalıştır'ı seçin veya Çalıştır PL/SQL penceresini getirmek için Ctrl + F11'i seçin. Bu, değiştirmeniz gereken giriş ve çıkış paramları içeren bir şablon oluşturur. Bir sys_refcursor sonucunu döndürmek için, proc tarafından döndürülen select stmt/sys_refcursor öğesine tam olarak eşdeğer bir satır türü bildirmeniz gerekir. Aşağıda, çıktı alanlarıyla eşleşen "t_row" yazıp ardından döndürülen sys_refcursor aracılığıyla dönüyorum. t_row o zaman sys_refcursor her satırı ile doldurulur alır benim sys_refcursor eşleşirse:

DECLARE 
    P_CAE_SEC_ID_N NUMBER; 
    P_FM_SEC_CODE_C VARCHAR2(200); 
    P_PAGE_INDEX NUMBER; 
    P_PAGE_SIZE NUMBER; 
    v_Return sys_refcursor; 
    type t_row is record (CAE_SEC_ID NUMBER,FM_SEC_CODE VARCHAR2(7),rownum number, v_total_count number); 
    v_rec t_row; 

BEGIN 
    P_CAE_SEC_ID_N := NULL; 
    P_FM_SEC_CODE_C := NULL; 
    P_PAGE_INDEX := 0; 
    P_PAGE_SIZE := 25; 

    CAE_FOF_SECURITY_PKG.GET_LIST_FOF_SECURITY(
    P_CAE_SEC_ID_N => P_CAE_SEC_ID_N, 
    P_FM_SEC_CODE_C => P_FM_SEC_CODE_C, 
    P_PAGE_INDEX => P_PAGE_INDEX, 
    P_PAGE_SIZE => P_PAGE_SIZE, 
    P_FOF_SEC_REFCUR => v_Return 
); 
    -- Modify the code to output the variable 
    -- DBMS_OUTPUT.PUT_LINE('P_FOF_SEC_REFCUR = '); 
    loop 
    fetch v_Return into v_rec; 
    exit when v_Return%notfound; 
    DBMS_OUTPUT.PUT_LINE('sec_id = ' || v_rec.CAE_SEC_ID || 'sec code = ' ||v_rec.FM_SEC_CODE); 
    end loop; 

END; 
1

sqldeveloper içinde datagrid bir refcursor Gösterilecek yolu vardır. bir refcursor tanımlayabiliriz, SP'yi çağırdıktan sonra refcursor'u yazdırabiliriz, daha sonra veriler Script çıkış penceresinde bir düz metin modunda basılır, ancak Query Result penceresinde değil.

6
SET SERVEROUTPUT ON; 
VARIABLE X REFCURSOR; 
EXEC PROCEDURE_WITH_OUTPUT_SYS_REFCURSOR(:X); 
PRINT X; 
+0

Parametre olarak iletilecek bir değişkeni nasıl ayarlayacağınızı biliyor musunuz? (Imleç ile birlikte burada Benim kod ... Ben oluşturmak ve "pin_customer_last_name_string" için bir değişken ayarlamak çalışıyorum /* */ var v_customer_cursor refcursor;.. /*/ exec MYSCHEMA01.MYPACKAGE01 .MYPROCEDURE01 (pin_customer_last_name_string => 'SMITH', pout_customer_cursor =>: v_customer_cursor); /* */ baskı v_customer_cursor; /* */ – granadaCoder

+0

hatta benim iş bana koymuyor ... o içine bakamıyor bu günlerde bir Oracle DB'nin önünde. – quillbreaker