打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
使用脚本加速 DB2 存储过程开发
在针对 DB2 存储过程的开发中,您是否觉得 DB2 提供的开发工具虽然功能强大,但是执行速度较慢,稍显笨重,而我们的日常开发中仅仅使用了一些比较常用的功能。你是否觉得虽然其工具操作起来比较直观,但是在处理大量创建、修改操作或者重复执行一些操作时就会比较费时?是否感觉使用其工具,无法方便的记录跟踪我们执行过的操作?如果您有上述的问题,本文会给您提供一个解决办法——使用 Windows 脚本进行 DB2 存储过程开发。脚本通常执行速度快捷,灵活;善于处理批量操作;以文本格式编写的脚本也方便我们查看具体我们执行了哪些操作。脚本的特点恰恰帮助我们解决了刚刚提到的问题。
本文主要讨论使用 Windows 脚本与 DB2 交互的一些常用技巧和方法。介绍了利用 Windows 的脚本(批处理程序)连接数据库,查询表结构,UDF之间的引用关系,存储过程中使用了哪些表等等。同时通过一个演示项目的开发过程的介绍来展示如何使用文中的脚本进行开发。
背景知识简介
Windows 脚本常用命令
Windows 脚本也称之为批处理程序,是一个包含了一些需要顺序执行的 Windows 命令的文本文件,其扩展名为 bat 或 cmd。由于本文的脚本需要传入参数,读者需要在控制台中执行本文提供的 Windows 脚本。
下面是 Windows 中的一些常用命令和符号。这里仅仅列出一些说明,如果想了解 Window 命令的详细信息,请参考本文提供的参考资料。
REM:行注释命令,它不会被执行,只是起一个注释的作用,便于代码的阅读和维护;   ECHO:命令主要参数有 OFF 和 ON,用于控制是否在控制台上显示正在执行的命令。也可以使用 ECHO message 来显示一个特定的消息;   GOTO: 即为跳转的意思。在脚本中以“:XXX”构建一个标号然后用GOTO XXX 来执行标号后的命令;   CALL: 命令用于在主脚本执行过程中调用子脚本,当子脚本执行完毕后再继续执行主脚本。如果我们不使用 CALL 来调用子脚本,而是在主脚本中直接调用子脚本,那么被调用的子脚本执行完毕,也就表示主脚本执行的完毕,主脚本后续的命令将不会被执行;   PAUSE: 暂时停止脚本的执行;   PROMPT: 修改命令提示符。PROMPT [text]。text 表示新的提示符。 $P 代表当前路径,$G 代表 >;   START: 打开一个新的窗口执行某个命令。如果 START 后面跟的是一个文件名,那么 Windows 会调用打开该种文件的程序将其打开。例如,如果你设定 notepad(记事本)为 *.log 文件的打开程序。那么执行 START my.log 命令后,Windows 会启动 notepad(记事本)程序,并且打开 my.log 文件;   符号(@):@ 符号可以关闭当前命令行的回显。我们从上面知道用命令 echo off 可以关掉整个批处理的命令回显但却不能不显示 echo off 这个命令。现在我们在这个命令前加上 @,这样 echo off 这一命令就被 @ 关闭了回显,从而达到所有命令均不回显的要求;   管道(输出重定向)命令 > 和 >>:将命令输出的结果重定向到特定文件中, > 与 >> 的区别在于,> 会清除文件中原来的内容,然后把输出结果写入文件,而 >> 只会追加内容到文件中,而不会改动其中原有的内容;   Windows 脚本参数:我们可以向脚本传递参数,并且可以在脚本中通过 %n 来引用。脚本每次能处理的变量从 %0~%9 共 10 个。其中 %0 默认为批处理的文件名。
DB2 CLP 简介
DB2 Command Line Processor(DB2 CLP)是所有 DB2 产品中都有的,可以使用这个应用程序运行 DB2 命令、操作系统命令或 SQL 语句。DB2 CLP 可以成为强大的工具,因为它能够将经常使用的命令或语句序列存储在批处理文件中,可以在必要的时候运行这些批处理文件。在 Windows 系统中,必须先(从普通命令窗口)运行 db2cmd 命令来启动 DB2 命令行环境。
在什么时候使用本文介绍的脚本?
脚本的优势在于可以重复执行。如果一个任务会被执行多次,或者被多人执行。那么将该任务编写成脚本会提高任务的执行效率和准确性。本文介绍的脚本都是一些在我们进行存储过程开发和调试中经常用到的。读者在后面会渐渐体会到脚本给我们带来的便利。
描述
TABSCHEMA VARCHAR(128) 记录 schema 的名字
TABNAME VARCHAR(128) 记录数据库对象的名称。包括表、视图、别名等
TYPE CHAR(1) 表示该数据库对象是表,视图还是别名 ('T'表示table; 'V'表示 view; 'N' 表示nickname; 'A' 表示 alias。)
COLCOUNT SMALLINT 表或视图中列的个数
……
SYSCAT.VIEWS:视图的定义信息。详细说明见表 2。
表 2. SYSCAT.VIEWS 视图的说明
列名 数据类型 描述
VIEWSCHEMA VARCHAR(128) 视图的 Schema
VIEWNAME VARCHAR(128) 视图名称
READONLY CHAR(1) 视图是否只读: Y = 视图是只读 N = 视图不是只读
VALID CHAR(1) 视图状态是否合法: Y = 视图状态合法(valid) X = 视图状态不合法(invalid)
TEXT CLOB (64K) 视图的源程序(DDL)
……
SYSCAT.ROUTINES:DB2 UDF,系统方法(system-generated method),用户定义方法(user-defined method)和存储过程(SP)的定义。我们可以认为该视图包含了数据库中程序的定义。
本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
InfoQ: 数据库的持续集成和版本控制
BAT脚本的二个经典运用
CSDN技术中心 学习批处理!包你学会!!!
bat语法和例子
批处理与其他语言混合编程
批处理文件指南
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服