Affichage Dynamique EXÉCUTER Sortie Dans pl/sql sqlplus

Comment obtenir la dynamique des résultats de sélection de EXECUTE au sein de PL/SQL de Oracle sqlplus?

Je suis en train d'écrire un simple sqlplus script de recueillir la somme de tous les NUMBER colonnes d'une table:

SET SERVEROUTPUT ON

DECLARE
        CURSOR column_cur IS
                SELECT column_name FROM ALL_TAB_COLS
                WHERE owner = '&scheme_name' AND table_name = '&table_name'
                AND data_type = 'NUMBER';
        sql_query VARCHAR2(32767);
BEGIN
        sql_query := 'select ';
        FOR column_rec IN column_cur LOOP
                sql_query := sql_query || 'SUM(' || column_rec.column_name ||
                        ') "SUM(' || column_rec.column_name || ')", ';

        END LOOP;
        sql_query := substr(sql_query, 0, length(sql_query)-2) || -- remove trailing ', '
                ' from &scheme_name' || '.&table_name';
        EXECUTE IMMEDIATE sql_query;
END;
/

Le SQL générées de manière dynamique instruction, lorsqu'il est exécuté, donne quelque chose comme:

SUM(X) | SUM(Y) | SUM(Z) |
--------------------------
111    | 222    | 333    |

Cependant, même avec SET SERVEROUTPUT ON, l'exécution de la sqlplus script donne:

PL/SQL procedure successfully completed.

OriginalL'auteur Jerry | 2009-09-02