DB2 v7.2 中的高级 SQL 过程脚本编制
2008-09-09 16:30:15 来源:WEB开发网提示:为了去除 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'
- ››sql server自动生成批量执行SQL脚本的批处理
- ››sql server 2008亿万数据性能优化
- ››SQL Server 2008清空数据库日志方法
- ››sqlserver安装和简单的使用
- ››SQL Sever 2008 R2 数据库管理
- ››SQL SERVER无法安装成功,sqlstp.log文件提示[未发...
- ››Sql Server中通过父记录查找出所有关联的子记录
- ››SqlServer触发器、存储过程和函数
- ››SQL Server 中的事务(含义,属性,管理)
- ››Sqlite数据库插入和读取图片数据
- ››Sql server 2005拒绝了对对象 'xx表' (数...
- ››Sql server 2005拒绝了对对象 'xx表' (数...
更多精彩
赞助商链接