2010-08-24 26 views
8

Suite à la question "Get resultset from oracle stored procedure", existe-t-il un moyen d'afficher les résultats d'une procédure stockée qui renvoie un REFCURSOR dans une grille (au lieu de la fenêtre Sortie de texte brut) dans SQL Developer?Oracle SQL Developer: Afficher les résultats REFCURSOR dans la grille?

EDIT: La réponse a aidé, mais je suis toujours avoir un problème d'affichage du jeu de résultats dans la fenêtre « Value »:

alt text

Les colonnes ne peuvent être que d'une petite quantité élargi , probablement en raison du nombre de résultats renvoyés. L'expansion de la fenêtre avec le contrôle Resizer ne permet pas:

alt text

Répondre

8

Je ne pense pas que vous pouvez avec une procédure.

Editer: Merci à DCookie pour simplifier ma réponse originale. Mais en guise de solution de rechange, vous pouvez écrire une fonction qui appelle la procédure, puis l'invoquer en utilisant SQL.

par exemple.

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

    myproc(rc); 

    return rc; 

END; 

que vous pouvez ensuite appeler avec:

select callmyproc() 
    from dual; 

Lorsque cet exemple est exécuté, la grille de données SQL Developer montre un résultat, mais si vous faites défiler à droite et cliquez sur le bouton d'édition, vous verrez les résultats dans une grille.

+1

Ou plus simple encore, créez une fonction qui invoque la procédure et renvoie le refcursor. – DCookie

+0

@DCookie - Bien sûr! une manière beaucoup plus élégante. Merci, j'ai modifié ma réponse. –

+0

Merci pour votre aide. J'ai accepté la réponse, mais pour les résultats, je récupère la fenêtre "View Value" qui montre de minuscules colonnes que je ne peux pas développer lorsque je clique sur le bouton edit. – technomalogical