2009-07-03 4 views

Répondre

6

Double-cliquez sur les champs du curseur dans votre enregistrement de résultat. Sur le côté droit, il y a une icône "...". Cliquez sur ceci et vous verrez le contenu

+1

S'applique également au développeur PL/SQL. –

5

Salut, je sais que cela a été demandé il ya un moment, mais je viens de comprendre cela et il pourrait aider quelqu'un d'autre. Je ne sais pas si c'est exactement ce que vous cherchez, mais c'est comme ça que j'appelle un proc stocké et que je vois la sortie dans SQL Developer.
Dans SQL Developer, lorsque vous visualisez la proc, faites un clic droit et choisissez 'Exécuter' ou sélectionnez Ctrl + F11 pour faire apparaître la fenêtre Exécuter PL/SQL. Cela crée un modèle avec les paramètres d'entrée et de sortie que vous devez modifier. Pour retourner les résultats d'un sys_refcursor, vous devez ensuite déclarer un type de ligne exactement équivalent au select stmt/sys_refcursor renvoyé par proc. Ci-dessous, je déclare "type t_row" qui correspond à mes champs de sortie, puis boucle le sys_refcursor retourné. Si t_row correspond à mon sys_refcursor alors il se peuplé de chaque ligne de la 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

il n'y a pas moyen d'afficher un refcursor dans DataGrid dans sqldeveloper. nous pouvons définir un refcursor, appeler SP, puis imprimer refcursor, puis les données seront imprimées dans la fenêtre de sortie du script en mode texte plan, mais pas dans la fenêtre Résultat de la requête.

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

Savez-vous comment définir une variable à transmettre en tant que paramètre. (En liaison avec le curseur dans mon code ici ... Je suis en train de créer et définir une variable pour "pin_customer_last_name_string" /* */ var v_customer_cursor refcursor;.. /* */exec MYSCHEMA01.MYPACKAGE01 .MYPROCEDURE01 (pin_customer_last_name_string => 'SMITH', pout_customer_cursor =>: v_customer_cursor); /* */ impression v_customer_cursor; /* */ – granadaCoder

+0

Je ne peux pas regarder même dans ce ... mon travail ne me met pas devant une base de données Oracle ces jours-ci. – quillbreaker