2009-07-03 8 views

risposta

6

Fare doppio clic sui campi del cursore nella registrazione dei risultati. Sul lato destro c'è un'icona "...". Fare clic qui e vedrai il contenuto

+1

Si applica anche allo sviluppatore PL/SQL. –

5

Ciao So che questo è stato chiesto qualche tempo fa, ma ho appena capito questo e potrebbe aiutare qualcun altro. Non sono sicuro se questo è esattamente quello che stai cercando, ma è così che chiamo un proc memorizzato e visualizzare l'output in SQL Developer.
In SQL Developer durante la visualizzazione del proc, fare clic con il tasto destro e scegliere 'Esegui' o selezionare Ctrl + F11 per visualizzare la finestra Esegui PL/SQL. Questo crea un modello con i parametri di input e output che è necessario modificare. Per restituire i risultati di un sys_refcursor, è necessario dichiarare un tipo di riga che è esattamente uguale a equivalente a select stmt/sys_refcursor restituito dal proc. Sotto dichiaro "type t_row" che corrisponde ai miei campi di output, quindi esegui il loop del sys_refcursor restituito. Se t_row corrisponde la mia sys_refcursor poi viene popolata con ogni riga della sys_refcursor:

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

non ci sono modo per visualizzare un refcursor in DataGrid in sqldeveloper. possiamo definire un refcursor, chiamare SP, quindi stampare refcursor, quindi i dati verranno stampati nella finestra di output di Script in una modalità di testo piano, ma non nella finestra Risultati della query.

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

Sai come impostare una variabile da passare come parametro. (In collaborazione con il cursore Nel mio codice qui ... Sto cercando di creare e impostare una variabile per "pin_customer_last_name_string" /* */ var v_customer_cursor refcursor;.. /* */ MYSCHEMA01.MYPACKAGE01 exec .MYPROCEDURE01 (pin_customer_last_name_string => 'Smith', pout_customer_cursor =>: v_customer_cursor); /* */ stampa v_customer_cursor; /* */ – granadaCoder

+0

non riesco nemmeno a guardare in che ... il mio lavoro non mi ha messo di fronte a un DB Oracle in questi giorni. – quillbreaker

Problemi correlati