CREATE OR REPLACE PROCEDURE PRO_SBSJHZ IS
V_SQL VARCHAR2(20000);
CURSOR CURSOR_1 IS SELECT DISTINCT T.khxmmc FROM VW_SBSJHZ T;
BEGIN
V_SQL := 'SELECT JGMC ';
FOR V_khxmmc IN CURSOR_1
LOOP
V_SQL := V_SQL || ',sum(case khxmmc when ''' || V_khxmmc.khxmmc || '''then tjsl else 0 end) as '
||V_khxmmc.khxmmc;
END LOOP;
V_SQL := V_SQL || 'FROM VW_SBSJHZ';
--DBMS_OUTPUT.PUT_LINE(V_SQL);
V_SQL := 'CREATE OR REPLACE VIEW RESULT AS '|| V_SQL;
--DBMS_OUTPUT.PUT_LINE(V_SQL);
EXECUTE IMMEDIATE V_SQL;
END;