oracle 已经对临时表进行判断了,但是测试时候提示(ORA-00955: 名称已由现有对象使用)

0

        select count(1)
        into V_EXISTS_TMPTABLE
        from user_tables a
        where a.TABLE_NAME = 'TMP_UBI_FLT_DAF';
        if (V_EXISTS_TMPTABLE > 0) then
            VSQL := 'DROP TABLE TMP_UBI_FLT_DAF';
            EXECUTE IMMEDIATE VSQL;
        end if;
      executeIMMEDIATENoException('PKG_UBI_TOTW_LJ2.createDevicereplace',
                                  'TMP_UBI_FLT_DAF',
                                  TO_DATE(I_CALCDATE, 'YYYYMMDD'),
                                  'DROP TABLE TMP_UBI_FLT_DAF');

        VSQL := '
            CREATE TABLE TMP_UBI_FLT_DAF AS
            SELECT DF.POLICY_NUMBER,
            DF.ENROLLED_VIN,
            DF.DEVICE_ID,
            DF.STATDATE as DAF_STAT_DATE,
            DF.POLICY_NUMBER as SCORE_ACCOUNT_ID,
            TRUNC(SYSDATE) as STAT_DATE
            FROM UBI_DAF DF
            where DF.END_DATE IS NULL
                AND TO_DATE(''' || I_CALCDATE ||''',''YYYYMMDD'') = DF.STATDATE
                AND DF.ADFLAG = ''A''
                AND DF.ENDSTATDATE = DATE ''5000-01-01'' '; -- 有效保单
      
       
      executeIMMEDIATE('PKG_UBI_TOTW_LJ2.createDevicereplace',
                       'TMP_UBI_FLT_DAF',
                       TO_DATE(I_CALCDATE, 'YYYYMMDD'),
                       VSQL);
 
已邀请:
0

li052468 2015-12-17 回答

跟一下 看你的drop table 执行了没
0

Queen_Jing - 一句话介绍 2015-12-17 回答

是在日志里看嘛,日志里就一条报错,create.....  (ORA-00955: 名称已由现有对象使用)

要回复问题请先登录注册