WEB开发网
开发学院数据库DB2 DB2 v7.2 中的高级 SQL 过程脚本编制 阅读

DB2 v7.2 中的高级 SQL 过程脚本编制

 2008-09-09 16:30:15 来源:WEB开发网   
核心提示: 提示:为了去除 SELECT 语句结果的列标题,请在发出 db2 命令时使用 -x 标志,DB2 v7.2 中的高级 SQL 过程脚本编制(7),如果脚本的输出要用来作为另一个进程的输入,那么去除标题是有用的,那么必须使用 SQL 存储过程,因为 SQL UDF 目前还不支持数据修改, 抛

提示:为了去除 SELECT 语句结果的列标题,请在发出 db2 命令时使用 -x 标志。如果脚本的输出要用来作为另一个进程的输入,那么去除标题是有用的。

抛出 SQL 异常

SIGNAL SQLSTATE...SET MESSAGE_TEXT 语句抛出一个用户定义的 SQL 异常。在上面的例子中,抛出 SQLSTATE 80000,其错误文本为:“Script is for MON & FRI only!”。 如果在同一个 BEGIN ATOMIC 节中存在其它修改数据的 SQL 语句,那么这个错误会使它们回滚。复合语句后面的语句将继续执行。

SIGNAL 语句的错误消息长度限制在 70 个字符。如果您指定了一个超出这一限制的消息,那么会在毫无警告的情况下截断它。

示例 3:确定脚本的参数

为了使脚本更灵活,您可能希望创建在执行期间可以从命令行上获取参数的脚本。遗憾的是,到目前为止,在我们所进行的这种脚本编制中,还无法将参数从 OS shell 上传递到脚本。然而,您可以通过如下方法解决这一限制:

临时创建一个获取参数的 SQL 用户定义函数(UDF)或 SQL 存储过程。

在脚本中调用这个函数或过程。

在脚本结束时删除这个 UDF 或存储过程。

选择使用 UDF 还是存储过程

选择存储过程而不是选择 UDF 有两个主要原因:

如果使用复杂查询和大型数据集,那么使用 SQL 存储过程可以达到最佳性能。

如果代码修改数据(INSERT、UPDATE 或 DELETE),那么必须使用 SQL 存储过程,因为 SQL UDF 目前还不支持数据修改。

从 OS shell 脚本传递参数

对于用“db2”作为数据库命令前缀的 OS shell 脚本,您可以按照以下方式传递参数(适用于 UNIX®):db2 select * from employee where empno='$1'

上一页  2 3 4 5 6 7 8 9 10  下一页

Tags:DB 高级 SQL

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接