11
如何從Oracle sqlplus
獲得PL/SQL中EXECUTE
的動態選擇結果?在pl/sql中顯示動態EXECUTE輸出從sqlplus
我正在寫一個簡單的sqlplus腳本來收集給定表的所有NUMBER
列的總和:
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 2009-09-02 09:52:04
傑裏,現在你可以(我相信你只需要15代表投票) – 2009-09-02 11:29:22