首页 > 代码库 > oracle一次给表添加多个字段
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;
oracle一次给表添加多个字段
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。