Comment obtenez-vous bien mis en forme les résultats d'un Oracle procédure qui retourne une référence curseur?

Dans MS SQL Server si je veux vérifier les résultats à partir d'une procédure Stockée je peut exécuter les opérations suivantes dans Management Studio.

--SQL SERVER WAY
exec sp_GetQuestions('OMG Ponies')

La sortie dans le volet de résultats pourrait ressembler à ceci.

ID    Title                                             ViewCount   Votes 
----- ------------------------------------------------- ---------- --------
2165  Indexed View vs Indexes on Table                  491         2  
5068  SQL Server equivalent to Oracles NULLS FIRST     524         3 
1261  Benefits Of Using SQL Ordinal Position Notation?  377         2 

(3 row(s) affected)

Pas besoin d'écrire des boucles ou des instructions d'IMPRESSION.

De faire la même chose dans Oracle je pourrais exécuter bloc anonyme dans SQL Developer

--ORACLE WAY
    DECLARE
        OUTPUT  MYPACKAGE.refcur_question;
        R_OUTPUT MYPACKAGE.r_question;
        USER    VARCHAR2(20);

BEGIN

  dbms_output.enable(10000000);
  USER:= 'OMG Ponies';
  recordCount := 0;



  MYPACKAGE.GETQUESTIONS(p_OUTPUT => OUTPUT, 
  p_USER=> USER, 

  ) ;




  DBMS_OUTPUT.PUT_LINE('ID |  Title | ViewCount | Votes' );

  LOOP 
    FETCH OUTPUT
    INTO R_OUTPUT;

         DBMS_OUTPUT.PUT_LINE(R_OUTPUT.QUESTIONID || '|' || R_OUTPUT.TITLE 
               '|' || R_OUTPUT.VIEWCOUNT '|' || R_OUTPUT.VOTES);
          recordCount := recordCount+1;




 EXIT WHEN OUTPUT % NOTFOUND;  
      END LOOP;
      DBMS_OUTPUT.PUT_LINE('Record Count:'||recordCount);
      CLOSE OUTPUT;


    END;

Ce sorties comme

ID|Title|ViewCount|Votes 
2165|Indexed View vs Indexes on Table|491|2  
5068|SQL Server equivalent to Oracles NULLS FIRST|524|3 
1261|Benefits Of Using SQL Ordinal Position Notation?|377|2 
Record Count: 3

Donc la version SQL a 1 et de la ligne de l'oracle a 18 ans et la sortie est laid. Son exacerbé s'il y a un grand nombre de colonnes et/ou les données numériques.

Ce qui est bizarre pour moi, c'est que si j'écris cette instruction SQL Developer ou de Gestion de studio...

SELECT 
ID, 
Title, 
ViewCount, 
Votes
FROM votes where user = 'OMG Ponies'  

Les résultats sont assez semblables. Ce qui me fait sentir comme je suis absent d'une technique ou d'utiliser le mauvais outil.

OriginalL'auteur Conrad Frix | 2010-08-19