DB2 v7.2 中的高级 SQL 过程脚本编制
2008-09-09 16:30:15 来源:WEB开发网db2 select * from employee where empno='$2'
上面的脚本从 EMPLOYEE 表中选择雇员号(empno)等于从 OS 传递到脚本的第一个参数的记录,然后再选择雇员号与从 OS 传递到脚本的第二个参数相等的记录。(在 Windows® 平台上,使用 %1 和 %2 分别替代 $1 和 $2。)
然而,使用如上所示那样命令的 Shell 脚本,在脚本内部不能轻松支持如 IF/THEN/ELSE、局部变量、FOR LOOPS 等 SQL 过程元素。这主要是由于代码格式有较多的限制,从而使这种方法只适合于简单的脚本编制。
使用 UDF 的示例
1. 为了准备运行这个示例,我们需要创建一个表,并在其中插入一些值。连接至数据库,然后执行下列 SQL 语句:
CREATE TABLE tab1 (id INT NOT NULL PRIMARY KEY, text VARCHAR(10))
INSERT INTO tab1 VALUES (1, 'one')
INSERT INTO tab1 VALUES (2, 'two')
2. 现在,将下列脚本输入到文本文件中,然后把它保存为 funcparam.ddl:
CREATE FUNCTION getText(key INT)
LANGUAGE SQL
RETURNS VARCHAR(20)
BEGIN ATOMIC
RETURN SELECT text FROM tab1 t WHERE t.id=key;
END@
3. 创建名为 funcparam.cmd 的第二个文件,它是一个获取参数的 shell 脚本,含有以下内容(使用适用于您平台的版本)
UNIX Windows
db2 connect to <dbname>
db2 -td@ -f funcparam.ddl
db2 values getText($1)
db2 drop function getText (INT)
db2 connect to <dbname>
db2 -td@ -f funcparam.ddl
db2 values getText(%1)
db2 drop function getText(INT)
- ››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表' (数...
更多精彩
赞助商链接