求解ORA-00911,ORA-06512

为什么报错呢?求解图片说明

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;

2个回答

ORA-00911 无效字符
ORA-06512 看下这位老兄的解http://download.csdn.net/download/xcx2010331/4165859
希望对你用用

case ,when 语句在then的前面是需要有个空格的

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问