11
에서 동적 선택 결과 EXECUTE
을 PL/SQL 내에서 얻으려면 어떻게해야합니까?pl/sql 내에서 동적 EXECUTE 출력 표시 sqlplus
나는 주어진 테이블의 모든 NUMBER
컬럼의 합계 수집하는 간단한 SQLPLUS 스크립트를 쓰고 있어요 :
SUM(X) | SUM(Y) | SUM(Z) |
--------------------------
111 | 222 | 333 |
:
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 문이 실행될 때, 뭔가를 제공합니다
그러나 SET SERVEROUTPUT ON
인 경우에도 sqlplus 스크립트를 실행하면 다음을 얻을 수 있습니다.
PL/SQL procedure successfully completed.
감사를 완벽! 나는 당신을 투표 할 수 있었으면 좋겠다. – Jerry
Jerry, 이제 할 수있다 (나는 당신이 단지 15 명 이상의 상원 의원을 필요로한다고 믿는다) –