1、在DB2触发器、存储过程中是否可以使用数组?若不能使用,是否有可替代的功能?
2、各种数据类型如何转换?例如:数值转成字符(变长)。
3、如何查看序列相关信息?例如:起始值、最大值、当前值等。
4、触发器、存储过程、函数中异常如何处理?
5、DB2中是否存在数据库管道,若存在如何使用(就如同Oracle中的DBMS_PIPE)?
6、在DB2触发器、存储过程中使用游标是否有什么特殊要求?
7、在DB2触发器、存储过程中是否可以定义表变更(即用变量代替表名对表中字段进行引用)?
8、可否提供包含以上应用的触发器、存储过程、函数的范本?
9、可否提供C语言开发的包含连接DB2数据库、读写DB2数据库的范本?
------解决方案--------------------------------------------------------
帮顶,
------解决方案--------------------------------------------------------
1,可以
2、有函数cast
3、起始值,最大值不会,当前值,preval
4、定义错误号
5、数据库管道指的是两个机器之间通信?如果是的话,db2有联邦数据库的概念
6、没看出有什么要求(或者我不知道)
7、看db2的动态sql语句
8、网上有很多
9、
fetch an attribute value
--------------------------------------------------------------------------------------------
@desc=Rule51:fetch an attribute value
@fenced=true
@results=1
@parmstyle=GENERAL
@sql
EXEC SQL BEGIN DECLARE SECTION;
char brand[80] = "$Id: gbl0003.txt,v 1.2 2005/01/20 22:20:24 gregg Exp $ ";
EXEC SQL END DECLARE SECTION;
EXEC SQL DECLARE sp_cursor CURSOR FOR
SELECT T.attributevalue,T.NLSID FROM
@schema.Text T
WHERE
T.Enterprise = :Enterprise
AND T.EntityType = :EntityType
AND T.EntityID = :EntityID
AND T.AttributeCode = :AttributeCode
AND T.NLSID in (1,:NLSID)
AND T.ValFrom <= :now AND :now < T.ValTo AND T.EffFrom <= :now AND :now < T.EffTo
order by nlsid
;
@execute
EXEC SQL OPEN sp_cursor;
@parameters
inout ReturnStatus int
in Enterprise varchar(16)
in EntityType varchar(32)
in EntityID int
in AttributeCode varchar(32)
in NLSID int
@end
------解决方案--------------------------------------------------------
2、各种数据类型如何转换?例如:数值转成字符(变长)。
cast(1 as char(10));-- 不能是varchar
4、触发器、存储过程、函数中异常如何处理?
DECLARE EXIT HANDLER FOR SQLWARNING,SQLEXCEPTION
BEGIN
SET PROC_RET_CODE = '20001 ';
END;
DECLARE CONTINUE HANDLER FOR NOT FOUND
BEGIN
-- Do Nothing.
END;