文档详情

DB2存储过程学习笔记解析.doc

发布:2017-01-22约2万字共30页下载文档
文本预览下载声明
创建:db2?-?td@?-vf createSQLproc?.db2?--end@ (?此处的@可替换成其他符号?) 调用:?db2?call?过程名(参数?) 1 基础 --声明变量: DECLARE??variable-name???data-type??DEFAULT?constant? --赋值: SET?x=?10; SET?y=(?SELECT?SUM?(c1)?from?T1); VALUES?10?INTO?x; SELECT?SUM?(c1)?INTO?y?from?T1?; --会话全局变量: CREATE?VARIABLE?var_name DATATYPE?[DEAFULT?value]; 2 、数组 2.1?定义 CREATE?TYPE?mynames?as?VARCHAR(30?)?ARRAY?[];--定义数组 2.2?声明 DECLARE?nameArr mynames;--声明数组 2.3?赋?值 SET?TESTARR=ARRAY[1?,2,?3,4?,5,?6,7?,8,?9,10?];SET?TESTARR?=ARRAY[VALUES?(1),(?2)];--?方法1,使用?SET?语句 SELECT?SUM?(NUM)?INTO?TESTARR[1?]?FROM?(VALUES?(?1),(2?))?AS?TEMP(NUM?);--方法?2,使用VALUES INTO?语句 VALUES?1?INTO?TESTARR[1?];--方法?3,使用SELECT INTO?语句 SET?TESTARR[1]?=1;?--方法4,?使用ARRAY?构造函数 2.4?操作数组的函数 ? ARRAY_DELETE:删除数组元素 ? TRIM_ARRAY:从右开始删除指定数目?个元素 ? ARRAY_FIRST:返回数组中第一?个元素 ? ARRAY_LAST:返回数组中最后一?个元素 ? ARRAY_NEXT:返回数组下一个元素 ? ARRAY_PRIOR:返回数组前一个元素 ? ARRAY_VARIABLE:返回参数指定的元素 ? ARRAY_EXISTS:判断数组是否有元素 ? CARDINALITY:返回数组中元素的?个数 ? MAX_CARDINALITY:返回数组中元素的?个数 ??UNNEST:将数组转换?为表 3 复合语句 语法: label:?BEGIN?[?ATOMIC?|?NOT?ATOMIC]?--ATOMIC?关键字封装的复合语句被当作一个处理单元 --变量声明、过程逻辑等 END?label 4?流程控制 --条件判断IF IF??condition?THEN ????SQL?procedure?statement; ELSEIF?condition??THEN ????SQL?procedure?statement; ELSE ????SQL?procedure?statement; END?IF?; IF?FRIEND=张三?THEN ????SET?MSG?=你好,张三?; ELSEIF FRIEND=?李四?THEN ????SET?MSG?=你好,李四?; ELSE ????SET?MSG?=对不起,我不认识你?; END?IF?; --循环While WHILE??condition DO ????sql?statements; END?WHILE?; WHILE?I=?10 DO SET?NUM=?NUM+I?; ????SET?I?=I+1?; END?WHILE?; --循环for FOR??loop_name?AS??sql?statements DO ????sql?statements; END?FOR?; FOR?TEST?AS?SELECT?I?FROM?(VALUES(1),(2?),(3))?AS?TEMP(I?) DO ????SET?NUM?=NUM+?I; END?FOR?; --循环LOOP LABEL:LOOP sql?statements?; ??? LEAVE LABEL; END?LOOP?LABEL; TEST_LOOP:LOOP ????SET?NUM?=NUM+?I; ????SET?I?=I+1?; ????IF?I?10?THEN ??????? LEAVE TEST_LOOP?; ????END?IF; END?LOOP?TEST_LOOP; --循环Repeat REPEAT sql?statements?; ??? UNTIL?condition? END?REPEAT?; REPEAT SET?NUM=?NUM+I?; SET?I=?I+1?; ??? UNTIL I10 END?REPE
显示全部
相似文档