使用脚本加速DB2存储过程开发

使用脚本加速DB2存储过程开发,第1张

使用脚本加速DB2存储过程开发,第2张

在DB2存储过程的开发中,你是否觉得DB2提供的开发工具虽然强大,但是执行速度慢而且有点繁琐,在我们的日常开发中只使用了一些常用的函数?你觉得它的工具虽然操作起来很直观,但是处理大量的创建、修改操作或者重复一些操作会很费时间吗?你是否觉得使用它的工具,你不能很容易地记录和跟踪我们做了什么?如果您有上述问题,本文将为您提供一个解决方案——使用Windows脚本开发DB2存储过程。脚本通常被快速灵活地执行;擅长处理批量操作;以文本格式编写的脚本也方便我们确切地看到我们做了什么。剧本的特点正好帮助我们解决了刚才提到的问题。
本文主要讨论使用Windows脚本与DB2交互的一些常用技巧和方法。本文介绍了使用Windows脚本(批处理程序)连接数据库,查询表结构,UDF之间的引用关系,存储过程中用到哪些表等等。同时,介绍了一个示范项目的开发过程,展示了如何使用本文中的脚本进行开发。
背景知识介绍
Windows脚本的常用命令
Windows脚本也称为批处理程序,是包含一些需要按顺序执行的Windows命令的文本文件,扩展名为bat或cmd。因为本文中的脚本需要传入参数,所以读者需要在控制台中执行本文中提供的Windows脚本。
以下是Windows中的一些常用命令和符号。这里只是一些说明。如果您想了解关于Window命令的更多信息,请参考本文提供的参考资料。
REM:行注释命令,不会被执行,只是作为注释,方便代码的阅读和维护;
ECHO:命令的主要参数是OFF和ON,用来控制正在执行的命令是否显示在控制台上。您还可以使用回显消息来显示特定的消息;
GOTO:是跳的意思。在脚本中构建一个带有“:XXX”的标签,然后使用GOTO XXX执行带标签的命令;
CALL:该命令用于在主脚本执行过程中调用子脚本,子脚本完成后继续执行主脚本。如果我们不使用CALL调用子脚本,而是直接调用主脚本中的子脚本,那么被调用的子脚本就结束了,也就意味着主脚本结束了,主脚本的后续命令就不会执行了;
PAUSE:暂时停止脚本的执行;
PROMPT:修改命令提示符。提示[文本].文本表示新的提示。$P代表当前路径,$G代表>;
START:打开新窗口执行命令。如果START后面跟一个文件名,那么Windows将调用打开该文件的程序来打开它。例如,如果您将记事本设置为*的打开程序。日志文件。然后执行START my.log命令后,Windows会启动记事本程序,打开my.log文件;
符号(@):符号@可以关闭当前命令行的回显。从上面我们知道echo off命令可以关闭整批的echo,但是我们还是忍不住要显示echo off命令。现在我们在这个命令前面加上@,这样echo off命令就被@关闭了,这样就满足了所有命令都不回显的要求;
Pipeline(输出重定向)命令>和> >:将命令的输出结果重定向到特定文件。>和> >的区别在于,>会擦除文件中的原始内容,然后将输出结果写入文件,而> >只会将内容追加到文件中,不会改变原始内容;
Windows脚本参数:我们可以给脚本传递参数,在脚本中可以被%n引用。该脚本一次可以处理从% 0到% 9的10个变量。其中默认情况下,%0是批处理的文件名。
DB2 CLP简介
DB2命令行处理器(DB2 CLP)在所有DB2产品中都有。您可以使用这个应用程序运行DB2命令、操作系统命令或SQL语句。DB2 CLP可以是一个强大的工具,因为它可以在批处理文件中存储经常使用的命令或语句序列,这些文件可以在需要时运行。在Windows系统中,必须首先运行db2cmd命令(从普通命令窗口)来启动DB2命令行环境。
您何时会使用本文中描述的脚本?
脚本的优点是可以重复执行。如果一项任务将被多次执行,或者由多人执行。然后把任务写成脚本,会提高任务的效率和准确性。本文介绍的脚本经常用于存储过程的开发和调试。读者以后会逐渐意识到脚本给我们带来的便利。

DB2系统表的功能
要为DB2编写脚本,我们首先需要知道DB2为我们提供了哪些命令和信息。DB2为我们提供了很多命令,比如连接数据库、执行SQL文件、获取表结构信息等等。在解释下面的特定脚本时,我们将解释一些简单的DB2命令。同时,DB2在系统表中存储了大量关于数据库对象的信息。熟悉了这些系统表,就可以通过SQL语句获取我们需要的信息。让我们首先学习DB2系统表。
当创建DB2数据库时,DB2将创建一些系统表。这些系统表记录了所有数据库对象的信息、表或视图的列的数据类型、约束的定义、对象的权限以及对象之间的依赖关系。这些系统表的模式是SYSIBM,它们的表名以sys为前缀。例如:系统表、系统视图等。这些系统表的相应只读视图是为DB2建立的。这些视图的模式是SYSCAT,它们的内容是它们对应的系统表的全部或一部分。这些视图的名称没有前缀SYS。比如:SYSCAT。表是SYSIBM的视图。SYSTABLES
我们可以通过命令LIST TABLES FOR SYSTEM或LIST TABLES FOR SCHEMA schemaname来查看所有系统表和相关的视图信息。我们将介绍本文中使用的一些系统表和视图。
SYSCAT。表:数据库中对象的信息,包括表、视图、昵称和别名的一些定义。详情见表1。
表1。syscat.tables视图的说明
列名数据类型的说明
TABSCHEMAVARCHAR(128)记录模式的名称
TABNAMEVARCHAR(128)记录数据库对象的名称。包括表、视图、别名等。
TYPECHAR(1)表示数据库对象是否是表,视图是否是别名(' T '表示表;' v '指视野。;“n”表示昵称;;“a”表示别名。)
colcountsmalint表或视图中的列数
...

SYSCAT。视图:视图的定义信息。详情见表2。
表2。syscat.views的说明
列名数据类型说明
viewschemavarchar(128)视图的架构
Viewname Varchar (128)视图名
READONLYCHAR(1)视图是否为只读:[/br]

VALIDCHAR(1)视图状态是否合法:
Y =视图状态合法(有效)
X =视图状态非法(无效)

源程序(DDL)的TEXTCLOB (64K)视图
...

SYSCAT。例程:DB2 UDF、系统生成方法的定义、用户定义方法和存储过程(SP)。我们可以认为这个视图包含了数据库中程序的定义。

位律师回复
DABAN RP主题是一个优秀的主题,极致后台体验,无插件,集成会员系统
白度搜_经验知识百科全书 » 使用脚本加速DB2存储过程开发

0条评论

发表评论

提供最优质的资源集合

立即查看 了解详情