博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

DB2技术点

Posted on 2013-12-12 11:10  生命如风  阅读(182)  评论(0编辑  收藏  举报

----定义
DECLARE CC VARCHAR(4000);
DECLARE SQLSTR VARCHAR(4000);
DECLARE st STATEMENT;
DECLARE CUR CURSOR WITH RETURN TO CLIENT FOR CC;

----执行动态SQL不返回
PREPARE st FROM SQLSTR;
EXECUTE st;

----执行动态SQL返回
PREPARE CC FROM SQLSTR;
OPEN CUR;


----判断是否为空,使用值替代
COALESCE(判断对象,替代值)

----定义临时表
DECLARE GLOBAL TEMPORARY TABLE SESSION.TempResultTable
(
Organization int,
OrganizationName varchar(100),
AnimalTypeName varchar(20),
ProcessType int,
OperatorName varchar(100),
OperateCount int
)
WITH REPLACE -- 如果存在此临时表,则替换
NOT LOGGED;

----字符串函数
Substr

----隐形游标迭代
for 游标名 as select....... do
使用 游标名.字段名
内容区块
end for;

----直接返回值或变量
declare rs1 cursor with return to caller for select 0 from sysibm.sysdummy1;

----判断表是否存在
select count(*) into @exists from syscat.tables where tabschema = current schema and tabname='ZY_PROCESSLOG';
----取前面N条记录
FETCH FIRST N ROWS ONLY
----定义返回值
declare rs0 cursor with return to caller for select 0 from sysibm.sysdummy1;
declare rs1 cursor with return to caller for select 1 from sysibm.sysdummy1;
----得到插入的自增长列最大值
VALUES IDENTITY_VAL_LOCAL() INTO 变量