DB2培训文档
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
IBM软件部
DB2 SQL PL使用介绍
© 2007 IBM 公司
IBM 软件部 | DB2 信息管理软件
内容:
存储过程的基本结构 SQL PL语言元素概述 流控制语句 理解和使用游标和结果集 条件处理 动态SQL 存储过程嵌套 用户定义函数和触发器 应用开发特性
© 2006 IBM公司
IBM软件部
© 2006 IBM公司
IBM 软件部 | DB2 信息管理软件
current query optimization current server client applname client userid client wrkstnname
查询优化级别 连接的数据库的名称 客户端应用程序的名称 客户端的用户ID 客户端的工作站名称
© 2006 IBM公司
IBM 软件部 | DB2 信息管理软件
db2的内存驻留变量:
变量名称 current date current isolation current lock timeout current path current package path current schema current time current timestamp user session_user system_user 变量含义 当天的日期 当前会话的事物级别 等待获得锁的秒数 数据库对象的模式 包中对象的模式 当前数据库对象的模式 当前的时间,到毫秒 当前的日期和时间 运行时连接数据库的用户 当前会话的授权ID,是user的 别名 连接数据库的用户 能否修改 N change isolation N set current path = db2admin,sysibm Y set current schema=db2admin N N N N N
Y N Y Y Y
© 2006 IBM公司
© 2006 IBM公司
IBM 软件部 | DB2 信息管理软件
存储过程体
1.注解 单行注解,使用两个减号--; 多行注解,和C语言的模式相同;/* */ 2.定义变量 declare v_empno varchar(6) ; --缺省值为空值 declare v_total,v_count integer default 0; 3.给变量赋值 set v_total = v_total + 1; select max(salary) into v_max from employee; values current date into v_adate; select current date,current date into v_adate, v_another from sysibm.sysdummy1; sysibm.sysdummy1是一个系统表,只包含1条记录;
© 2006 IBMBiblioteka Baidu司
IBM 软件部 | DB2 信息管理软件
5.细节名称(specific name)用来唯一标示一个存储过程; TIP:建议为每个存储过程指定一个细节名称,以便于管理; 6.删除存储过程:drop procedure sum(integer,integer,integer) #有多个名称为sum的过程 drop procedure sum drop specific procedure sum_ab 7.dynamic result sets指定了返回的最大的结果集的数目; 8. contains sql:不包含查询和更新语句; reads sql data:只包含查询语句; modifies sql data:包含查询和更新语句,这种方式的限制最少; 精确的定义上述3个选项,可以提高存储过程的执行性能; 9.deterministic:对于相同的输入参数,每次返回的结果都是相同的;结果集放在内存中 可以重用,因此可以提高运行的性能; not deterministic:结果集依赖于输入参数和其他可能变化的值,是缺省值; 10.called on null input:当输入参数为空值时,过程依旧执行;是缺省值; 11.language sql/c/java分别对应于sql/c/java的存储过程; 12.Parameter CCSID:CCSID表示Coded Character Set ID,它定义了当字符类的数据传入和从 过程中输出的编码模式;
存储过程的基本结构
© 2007 IBM 公司
IBM 软件部 | DB2 信息管理软件
存储过程的基本结构
存储过程的头
create procedure sum ( in p_a integer ,in p_b integer ,out p_s integer) language sql specific sum_ab begin set p_s=p_a+p_b; end 1.存储过程的名程由模式和名字两部分组成,如:db2admin.reademp; 2.当你定义多个存储过程具有相同的名程而参数不同时,specific语句是很重要的; 3.参数: 1) 模式:in/out/inout三种类型 2)名称:建议以p_开始; 3)数据类型 4.从命令行调用存储过程:call sum(100,200,?)
DB2 SQL PL使用介绍
© 2007 IBM 公司
IBM 软件部 | DB2 信息管理软件
内容:
存储过程的基本结构 SQL PL语言元素概述 流控制语句 理解和使用游标和结果集 条件处理 动态SQL 存储过程嵌套 用户定义函数和触发器 应用开发特性
© 2006 IBM公司
IBM软件部
© 2006 IBM公司
IBM 软件部 | DB2 信息管理软件
current query optimization current server client applname client userid client wrkstnname
查询优化级别 连接的数据库的名称 客户端应用程序的名称 客户端的用户ID 客户端的工作站名称
© 2006 IBM公司
IBM 软件部 | DB2 信息管理软件
db2的内存驻留变量:
变量名称 current date current isolation current lock timeout current path current package path current schema current time current timestamp user session_user system_user 变量含义 当天的日期 当前会话的事物级别 等待获得锁的秒数 数据库对象的模式 包中对象的模式 当前数据库对象的模式 当前的时间,到毫秒 当前的日期和时间 运行时连接数据库的用户 当前会话的授权ID,是user的 别名 连接数据库的用户 能否修改 N change isolation N set current path = db2admin,sysibm Y set current schema=db2admin N N N N N
Y N Y Y Y
© 2006 IBM公司
© 2006 IBM公司
IBM 软件部 | DB2 信息管理软件
存储过程体
1.注解 单行注解,使用两个减号--; 多行注解,和C语言的模式相同;/* */ 2.定义变量 declare v_empno varchar(6) ; --缺省值为空值 declare v_total,v_count integer default 0; 3.给变量赋值 set v_total = v_total + 1; select max(salary) into v_max from employee; values current date into v_adate; select current date,current date into v_adate, v_another from sysibm.sysdummy1; sysibm.sysdummy1是一个系统表,只包含1条记录;
© 2006 IBMBiblioteka Baidu司
IBM 软件部 | DB2 信息管理软件
5.细节名称(specific name)用来唯一标示一个存储过程; TIP:建议为每个存储过程指定一个细节名称,以便于管理; 6.删除存储过程:drop procedure sum(integer,integer,integer) #有多个名称为sum的过程 drop procedure sum drop specific procedure sum_ab 7.dynamic result sets指定了返回的最大的结果集的数目; 8. contains sql:不包含查询和更新语句; reads sql data:只包含查询语句; modifies sql data:包含查询和更新语句,这种方式的限制最少; 精确的定义上述3个选项,可以提高存储过程的执行性能; 9.deterministic:对于相同的输入参数,每次返回的结果都是相同的;结果集放在内存中 可以重用,因此可以提高运行的性能; not deterministic:结果集依赖于输入参数和其他可能变化的值,是缺省值; 10.called on null input:当输入参数为空值时,过程依旧执行;是缺省值; 11.language sql/c/java分别对应于sql/c/java的存储过程; 12.Parameter CCSID:CCSID表示Coded Character Set ID,它定义了当字符类的数据传入和从 过程中输出的编码模式;
存储过程的基本结构
© 2007 IBM 公司
IBM 软件部 | DB2 信息管理软件
存储过程的基本结构
存储过程的头
create procedure sum ( in p_a integer ,in p_b integer ,out p_s integer) language sql specific sum_ab begin set p_s=p_a+p_b; end 1.存储过程的名程由模式和名字两部分组成,如:db2admin.reademp; 2.当你定义多个存储过程具有相同的名程而参数不同时,specific语句是很重要的; 3.参数: 1) 模式:in/out/inout三种类型 2)名称:建议以p_开始; 3)数据类型 4.从命令行调用存储过程:call sum(100,200,?)