2010-09-06 7 views
0

J'essaie de générer un rapport en utilisant Oracle, mais j'ai quelques problèmes d'alignement. Existe-t-il un moyen d'imprimer des valeurs dans des colonnes particulières? J'essaye de réaliser ce qui suit:Générer un rapport dans Oracle?

--------------------------------------------------------- 
ColA  ColB  ColC 
-----  --------- --------- 
1   2   1 
2   4   2 
3   3   1 

Actuellement, j'ai quelques difficultés. J'écris la commande PL/SQL suivante:

DECLARE 

BEGIN 
    DBMS_OUTPUT.PUT_LINE('-'); 
    DBMS_OUTPUT.PUT_LINE('----------------------------------------------------------------------------------------------------------------'); 
    DBMS_OUTPUT.PUT_LINE('ColA  ColB  ColC'); 
    DBMS_OUTPUT.PUT_LINE('-----------  ------------  -------'); 
    FOR record IN (SELECT * FROM TABLEA) LOOP 
     DBMS_OUTPUT.PUT_LINE(record.ID || '  ' || record.TAG || '  ' || record.TIP); 
    END LOOP; 
END; 
/

Je mets manuellement dans huit espaces ainsi ma production est complètement foiré. Y a-t-il un meilleur moyen de formater la sortie?

Répondre

1

Tant pis ... J'ai tout compris ... Au cas où quelqu'un d'autre cherche une réponse, utiliser RPAD me donne ce que je veux. Par exemple, je peux le formater en utilisant bien les éléments suivants:

DECLARE 

BEGIN 
    DBMS_OUTPUT.PUT_LINE('-'); 
    DBMS_OUTPUT.PUT_LINE(RPAD('-', 50, '-'); 
    DBMS_OUTPUT.PUT_LINE(RPAD('ColA', 20) || RPAD('ColB', 20) || RPAD('ColC', 20)); 
    DBMS_OUTPUT.PUT_LINE('-----------  ------------  -------'); 
    FOR record IN (SELECT * FROM TABLEA) LOOP 
     DBMS_OUTPUT.PUT_LINE(RPAD(record.ID, 20) || RPAD(record.TAG, 20) || RPAD(record.TIP, 20)); 
    END LOOP; 
END; 
/
+1

vous pouvez aussi utiliser 'rpad ('-', 50, '-')' pour vos lignes –

+0

@be ici maintenant: Oh .. +1 pour cela ... merci :) Je vais modifier ma réponse ... – Legend

+1

il est aussi plus beau parfois de déclarer une variable varchar, remplissez-la avec votre chaîne de texte, puis faites juste 'dbms_output.put_line (s_report_string);' –

Questions connexes