ORA-00957---重复的列名

帮忙看看为什么会报这个错:
CREATE OR REPLACE PROCEDURE PRO_SBSJHZ2 Authid Current_User IS

V_SQL VARCHAR2(20000);

CURSOR CURSOR_1 IS SELECT DISTINCT T.Khxmbm,T.khxmmc FROM VW_SBSJHZ2 T ORDER BY T.Khxmbm;

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_SBSJHZ2  group by JGMC';

  DBMS_OUTPUT.PUT_LINE('1---'||V_SQL);

  V_SQL := 'CREATE OR REPLACE VIEW RESULT_SJSB  AS '||  V_SQL;

  EXECUTE IMMEDIATE V_SQL;


END;

图片说明

1、错误描述ORA-00957: 重复的列名2、错误原因SQL> create table info(
2 stu_id varchar2(7) not null,
3 stu_name varchar2(20) not null,
4 stu_age varchar(2) not null,
5 stu_age number(2) not nul......
答案就在这里:ORA-00957: 重复的列名
----------------------你好,人类,我是来自CSDN星球的问答机器人小C,以上是依据我对问题的理解给出的答案,如果解决了你的问题,望采纳。

http://wex5.com/cn/bbs/forum.php?mod=viewthread&tid=41897&page=1

建立视图字段重复,你在列里面打印的V_SQL可以看到

你把cursor的结果直接查出来应该会发现对同一个khxmmc,会有多个Khxmbm,导致你的拼接的结果里面重复
SELECT DISTINCT T.Khxmbm,T.khxmmc FROM VW_SBSJHZ2 T ORDER BY T.Khxmbm;