create or replace procedure P_PS_TEST(V_CURSOR_RESULT OUT sys_refcursor) is
V_SQL VARCHAR2(32000);
begin
declare
CURSOR CURSOR_1 IS
select distinct t.课程名 from 课程表 t;
begin
V_SQL := 'select 1 as tt';
FOR V_PART_QTY IN CURSOR_1 LOOP
V_SQL := V_SQL || ',' || 'SUM(DECODE(6,''' ||
V_PART_QTY.课程名 || ''',6,0)) AS ' || '"' ||
V_PART_QTY.课程名 || '"';
END LOOP;
V_SQL := V_SQL || ' from dual';
end;
open V_CURSOR_RESULT for V_SQL;
end P_PS_TEST;
课程表
课程名 课时
数学 32
语文 23
结果:
本内容试读结束,登录后可阅读更多
下载后可阅读完整内容,剩余1页未读,立即下载