`

动态生成修改默认值SQL脚本

 
阅读更多
今天遇到一个问题, 就是在割接生产的脚本你类似如下
create table ** as select * from tableName@DB_LINK

但是割接过来的数据丢失了默认值,而其它外键索引主键我都有单独的脚本,唯一默认值未准备脚本,所以写了个下面的动作脚本来生成可以修改默认值的动态脚本:

DECLARE
  --定义一个字符串数组类型
  TYPE tableNamesArray IS TABLE OF VARCHAR2(200);
  --所有表名
  tableNames tableNamesArray := tableNamesArray('TEST_TAB,TEST_US',
                                               
                                                );

  result    varchar2(4000);
  tableName varchar2(200);
  ownerName varchar2(20);
  icnt      integer;
BEGIN

  --循环插入数据
  FOR i IN 1 .. tableNames.COUNT LOOP
    icnt      := instr(tableNames(i), ',');
    tableName := upper(subStr(tableNames(i), 1, icnt - 1));
    ownerName := upper(subStr(tableNames(i),
                              icnt + 1,
                              length(tableNames(i))));
 
    for rec in (select a.COLUMN_NAME cn, a.DATA_DEFAULT cd
                  from sys.all_tab_columns a
                 where a.TABLE_NAME = tableName
                   and a.OWNER = ownerName
                   and a.DATA_DEFAULT is not null) loop
      result := 'alter table OD.' || tableName || ' modify(' || rec.cn ||
                ' default ' || rec.cd || ');';
      dbms_output.put_line(result);
      result := '';
    end loop;
  end loop;

EXCEPTION
  WHEN others THEN
    DBMS_OUTPUT.put_line('执行生成INSERT语句出现异常!' || substr(sqlerrm, 1, 2000));
END;
分享到:
评论

相关推荐

    经典SQL脚本大全

    │ │ 5.1.1 修改标识值的示例.sql │ │ 5.1.1 标识列与普通列互相转换的示例.sql │ │ 5.2.1 查表法按日期生成流水号的示例.sql │ │ 5.2.1 查表法生成流水号的示例.sql │ │ 5.2.2 使用编号表按日期生成流水号...

    Sqlserver2000经典脚本

    │ 5.4.4 缺勤天数统计的处理示例.sql │ │ │ └─其他 │ -补位法.sql │ 以另一个表的字段做默认值.sql │ 以另一表的字段生成编号.sql │ 关联部门流水号.sql │ 十六进制.sql...

    动软代码生成器最新版

     可根据选定的数据库和表(可多选),自动生成增、删、改、查等操作的存储过程脚本,和生成表的创建脚本及数据记录的SQL脚本,支持在当前生成和导出脚本文件功能。  自动生成数据库结构文档  可以根据选定的...

    LTP.Net代码自动生成器(DbToCode)

    DbToCode 同时提供方便的数据库查询管理,SQL脚本生成,存储过程生成,数据库文档生成,Web项目文件发布,代码生成自动导出文件等多项开发工作中常用到的功能,您可以很方便地进行项目开发。 详细功能说明: 1....

    Access转SQL2000

    生成升迁 SQL脚本,保存为 *.sql文件后,SQL2000的查询分析器里调入执行 生成升迁 ASP脚本,这样你可以用该脚本和相应MDB数据库上传到服务器在线升迁 直接执行Access数据导入到SQL2000服务器(表结构和数据) V1.03 ...

    自动生成Java源代码,轻松实现J2EE 的MVC架构开发

    8、根据建表SQL脚本,自动生成初始化变量,其变量初始化值为表字段的默认值 9、生成的Java Model类及Controller类实现集成调用 等等,总之,随着Java模板类的变化,自动生成的Model及Controller类功能可谓是各不...

    动软代码生成器 修复单类代码生成器4个问题。

    6.导出的sql脚本中,单引号 '的问题。 7.工具-选项-代码生成设置修改。 ★生成项目后,请选择“包括在项目中”,将生成的文件包含到项目。 ★Builder目录中是代码生成插件源码,动软支持可扩展的代码生成插件,...

    动软.Net代码生成器

    Codematic同时提供方便的多类型数据库管理,查询分析器,SQL脚本生成,存储过程生成,数据库文档生成,Web项目发布,代码批量自动输出等多项开发工作中常用到的功能,您可以很方便轻松地进行项目开发。 功能如下...

    CooSel2.0 CreateSQL V1.05(1.06??)

    生成升迁 SQL脚本,保存为 *.sql文件后,SQL2000的查询分析器里调入执行 生成升迁 ASP脚本,这样你可以用该脚本和相应MDB数据库上传到服务器在线升迁 直接执行Access数据导入到SQL2000服务器(表结构和数据) V1.03 ...

    access 转 sql server DB_CreateSqlEV1.06 CooSel2.0 CreateSQL

    生成升迁 SQL脚本,保存为 *.sql文件后,SQL2000的查询分析器里调入执行 生成升迁 ASP脚本,这样你可以用该脚本和相应MDB数据库上传到服务器在线升迁 直接执行Access数据导入到SQL2000服务器(表结构和数据) V1.03 ...

    动软生成器

    Codematic 同时提供方便的多类型数据库管理,查询分析器,SQL脚本生成,存储过程生成,数据库文档生成,Web项目发布,代码批量自动输出等多项开发工作中常用到的功能,您可以很方便轻松地进行项目开发。...

    Net代码生成器 2.16

    <br> 同时提供方便的多类型数据库管理,查询分析器,SQL脚本生成,存储过程生成,数据库文档生成,Web项目发布,代码批量自动输出等多项开发工作中常用到的功能,您可以很方便轻松地进行项目开发。 <br> 须...

    SQL Server 2008编程入门经典(第3版)

    11.4 动态SQL:用ExEC命令动态生成代码 11.5 控制流语句 11.5.1 IFELSE语句 11.5.2 CASE语句 11.5.3 用WHILE语句进行循环 11.5.4 WAITOR语句 11.5.5 TRY/CATCH块 11.6 本章小结 11.7 练习 第12章 存储过程 12.1 ...

    动软.Net代码自动生成器(Codematic)

    Codematic 同时提供方便的数据库查询管理,SQL脚本生成,存储过程生成,数据库文档生成,Web项目文件发布,代码生成自动导出文件等多项开发工作中常用到的功能,您可以很方便地进行项目开发。 <br/>详细...

    SQL.Server.2008编程入门经典(第3版).part2.rar

    11.4 动态SQL:用ExEC命令动态生成代码 11.5 控制流语句 11.5.1 IFELSE语句 11.5.2 CASE语句 11.5.3 用WHILE语句进行循环 11.5.4 WAITOR语句 11.5.5 TRY/CATCH块 11.6 本章小结 11.7 练习 第12章 存储过程 12.1 ...

    JSP 代码生成工具 JSP Maker 1.1 英文免费版.zip

    JSP Maker 是一款强大易用的代码生成器,可从MySQL和Oracle中快速生成一套完整JSP(JAVA服务器页)代码.使用生成的JSP,用户可以轻松查看,编辑,搜索以及添加删除网页上的数据库记录。生成的代码清洁并易于用户定制.JSP...

    Access转SQL工具

    你还在为数据库从access升级到sql server而数据类型,默认值都出错而烦恼吗?有了这个工具你就会发现其实数据库转换的工作是多么的轻松,支持生成sql脚本和直接导入sqlserver!

    SQL.Server.2008编程入门经典(第3版).part1.rar

    11.4 动态SQL:用ExEC命令动态生成代码 11.5 控制流语句 11.5.1 IFELSE语句 11.5.2 CASE语句 11.5.3 用WHILE语句进行循环 11.5.4 WAITOR语句 11.5.5 TRY/CATCH块 11.6 本章小结 11.7 练习 第12章 存储过程 12.1 ...

    SQL Server 2008管理员必备指南(超高清PDF)Part3

    2.3 运行安装程序和修改SQL Server安装 2.3.1 创建新的SQL Server实例 2.3.2 添加组件和实例 2.3.3 修复SQL Server 2008安装 2.3.4 升级SQL Server 2008版本 2.3.5 卸载SQL Server 第3章 管理外围安全、访问以及...

Global site tag (gtag.js) - Google Analytics