• 针对不能重复执行的SQL,如创建表,创建雾化视图等前面增加判断条件


    一、创建表之前判断是否已经存在,存在就DROP掉,不存在就直接创建

    DECLARE
          T_NUM  PLS_INTEGER := 0; 
    BEGIN
        SELECT COUNT(1) INTO T_NUM FROM USER_TABLES WHERE TABLE_NAME = UPPER('SYS_LOGS') ;
        IF T_NUM > 0 THEN
            EXECUTE IMMEDIATE 'DROP TABLE SYS_LOGS' ;
        END IF;
    END;
    /

      *PLS_INTEGER 可以存储一个有符号的整形值,其精度范围和BINARY_INTEGER一样,是:-2^31~2^31。

      PLS_INTEGER和NUMBER比较起来,其优点是:

        1).占有较少的存储空间;

        2).可以直接进行算术运算,效率更高(在NUMBER上不能直接进行算术运算,如果要计算,NUMBER必须先被转换成二进制)。

    二、创建雾化视图(MATERIALIZED VIEW)前,先判断是否存在,存在就先删除。

    declare
      T_NUM pls_integer := 0;
    begin
      select count(1)
        into T_NUM
        from user_mviews
       where mview_name = 'V_M_TEST';
      if T_NUM = 1 then
        execute immediate 'drop MATERIALIZED VIEW V_M_TEST';
        commit;
      end if;
    end;
    /
    

      

  • 相关阅读:
    模板方法模式
    策略模式
    享元模式
    组合模式
    桥接模式
    外观模式
    代理模式
    装饰者模式
    适配器模式
    类之间的关联关系和依赖关系
  • 原文地址:https://www.cnblogs.com/bert227/p/13494535.html
Copyright © 2020-2023  润新知