• oracle一次给多表添加相同字段


    遇到一个需求:在已经建好的数据库中,为每一个数据表都添加相同的3个字段。

    分析:数据库中的数据表较多,一一手动修改耗时低效,是否可以用程序遍历每一张表,然后为遍历到的当前表添加字段?

    查询当前用户的所有表定义和为某张表添加字段比较容易实现的,SQL中游标可以将这两者组织起来,因此编写以下程序实现功能:

    DECLARE
      V_SQL        VARCHAR2(2000);
      V_TABLE_NAME VARCHAR2(30);
      CURSOR C1 IS
        SELECT TABLE_NAME FROM USER_TABLES;   --查询当前用户下的所有表
    BEGIN
      OPEN C1;
      LOOP
        --提取一行数据到c1
        FETCH C1
          INTO V_TABLE_NAME;
        --判读是否提取到值,没取到值就退出
        --取到值c_job%notfound 是false 
        --取不到值c_job%notfound 是true
        EXIT WHEN C1%NOTFOUND;
        V_SQL := 'alter table ' || V_TABLE_NAME || ' add BATCHDATE NUMBER(8,0)';
        EXECUTE IMMEDIATE V_SQL;
        V_SQL := 'alter table ' || V_TABLE_NAME ||
                 ' add SOURCE_ID  NUMBER(8,0)';
        EXECUTE IMMEDIATE V_SQL;
        V_SQL := 'alter table ' || V_TABLE_NAME || ' add load_date date';
        EXECUTE IMMEDIATE V_SQL;
      END LOOP; --关闭游标
      CLOSE C1;
    END;
  • 相关阅读:
    自定义序列化类注意事项
    HashMap中的modCount
    transient
    30张图带你彻底理解红黑树(转)
    hashcode和hash算法
    线程池
    VS2015 NuGet错误:远程证书无效
    解决前台JS弹框Alert点击确定页面会刷新
    Regex中Replace方法的简单实用
    .ashx 一般处理程序
  • 原文地址:https://www.cnblogs.com/chinas/p/6227686.html
Copyright © 2020-2023  润新知