FOR I_DAY IN 1 .. 2 LOOP
          V_DAY := LPAD(TO_CHAR(SYSDATE-I_DAY,'DD'), 2, 0);
          V_DAY1 := TO_CHAR(SYSDATE-I_DAY,'yyyymmDD') ;
        FOR V_AREA IN (SELECT T.AREA_ID, T.AREA_JX FROM DIM_AREA_NO T) LOOP
            V_SQL := 'CREATE OR REPLACE VIEW TAB_D_USER_PPS_' ||
                     V_AREA.AREA_JX ||'_'||V_DAY||'
                     AS SELECT  *
                     FROM FORGRA.FORGRA_D_USER_PPS  A
                     WHERE  ACCT_MONTH||DAY_ID = ''' || V_DAY1 || '''
                       AND AREA_NO = ''' || 0||V_AREA.AREA_ID || '''';
            EXECUTE IMMEDIATE V_SQL;
         END LOOP;
      END LOOP; 有月份和日期的视图

解决方案 »

  1.   

    这是存储过程,不是视图。
    你要完成什么,报什么错,可以用show error来查看。
      

  2.   

    你的这段代码是存储过程的一部分,使用动态sql创建视图
    只是缺少了存储过程的头部
      

  3.   

    参考这个贴估计是一样的问题http://topic.csdn.net/u/20090728/11/7a13a0d4-c46f-41a2-ab99-777cf401762a.html?4484
      

  4.   

    V_SQL := 'CREATE OR REPLACE VIEW TAB_D_USER_PPS_' || 
                        V_AREA.AREA_JX ||'_'||V_DAY||' 
                        AS SELECT  * 
                        FROM FORGRA.FORGRA_D_USER_PPS  A 
                        WHERE  ACCT_MONTH||DAY_ID = ''' || V_DAY1 || ''' 
                          AND AREA_NO = ''' || 0||V_AREA.AREA_ID || ''''; 
                EXECUTE IMMEDIATE V_SQL; 
    这个SQL,不能执行成功,我觉得你指定的user(TAB_D_USER_PPS_'||V_AREA)不存在,才导致你的VIEW创建失败!
      

  5.   

    视图里面是纯sql查询语句不会有脚本