DB2 SQL存储过程语法官方权威指南
2007-07-03 16:21:06 来源:WEB开发网核心提示: 8、INHERIT SPECIAL REGISTERS:表示继承专用寄存器,9、OLD SAVEPOINT LEVEL or NEW SAVEPOINT LEVEL:建立存储点,DB2 SQL存储过程语法官方权威指南(3),OLD SAVEPOINT LEVEL是默认的存储点,10、LAN
8、INHERIT SPECIAL REGISTERS:表示继承专用寄存器。
9、OLD SAVEPOINT LEVEL or NEW SAVEPOINT LEVEL:建立存储点。OLD SAVEPOINT LEVEL是默认的存储点。
10、LANGUAGE SQL:指定程序的主体用的是SQL语言。
11、EXTERNAL ACTION or NO EXTERNAL ACTION:表示存储过程是否执行一些改变理数据库状态的活动,而不通过数据库管理器管。默认是
EXTERNAL ACTION。如果指定为NO EXTERNAL ACTION ,则数据库会确定最最佳优化方案。
12、PARAMETER CCSID:指定所有输出字符串数据的编码,默认为UNICODE编码数据库为PARAMETER CCSID UNICODE,其他的数据库默认为PARAMETER CCSID 3 ASCII。
13、SQL-procedure-body:存储过程的主体
例子1:产生一个SQL存储过程,返回员工的平均薪水. 返回所有员工超过平均薪水的数额,结果集包括name, position, and salary字段(参考数据库为db2的示例数据库sample)。
CREATEPROCEDUREMEDIAN_RESULT_SET(OUTmedianSalaryDOUBLE)
RESULTSETS1
LANGUAGESQL
BEGIN
DECLAREv_numRecordsINTDEFAULT1;
DECLAREv_counterINTDEFAULT0;
DECLAREc1CURSORFOR
SELECTCAST(salaryASDOUBLE)
FROMstaff
ORDERBYsalary;
DECLAREc2CURSORWITHRETURNFOR
SELECTname,job,CAST(salaryASINTEGER)
FROMstaff
WHEREsalary>medianSalary
ORDERBYsalary;
DECLAREEXITHANDLERFORNOTFOUND
SETmedianSalary=6666;
SETmedianSalary=0;
SELECTCOUNT(*)INTOv_numRecords
FROMSTAFF;
OPENc1;
WHILEv_counter<(v_numRecords/2+1)
DO
FETCHc1INTOmedianSalary;
SETv_counter=v_counter+1;
ENDWHILE;
CLOSEc1;
OPENc2;
END
- ››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表' (数...
更多精彩
赞助商链接