11
からPL/SQL内のEXECUTE
の動的選択結果を取得するにはどうすればよいですか?pl/sql内の動的EXECUTE出力を表示するsqlplus
私は与えられたテーブルのすべてのNUMBER
列の合計を収集するために、単純なSQLPLUSスクリプトを書いている:、
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;
/
実行動的に生成されたSQL文のようなものを与える:
SUM(X) | SUM(Y) | SUM(Z) |
--------------------------
111 | 222 | 333 |
ただし、SET SERVEROUTPUT ON
の場合でも、sqlplusスクリプトを実行すると、次のようになります。
PL/SQL procedure successfully completed.
おかげで、完璧に!私はあなたが投票することができたらいいと思う:) – Jerry
ジェリー、今できる(私はあなたが上の投票に15人の担当者を必要と信じている) –