DB2-PROCEDURE.doc
上传人:sy****28 上传时间:2024-09-11 格式:DOC 页数:2 大小:16KB 金币:16 举报 版权申诉
预览加载中,请您耐心等待几秒...

DB2-PROCEDURE.doc

DB2-PROCEDURE.doc

预览

在线预览结束,喜欢就下载吧,查找使用更方便

16 金币

下载此文档

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

db2自带的whiles.db2例子CREATEPROCEDUREdept_median(INdeptNumberSMALLINT,OUTmedianSalaryDOUBLE)LANGUAGESQLBEGINDECLARESQLCODEINTEGER;DECLARESQLSTATECHAR(5);DECLAREv_numRecordsINTDEFAULT1;DECLAREv_counterINTDEFAULT0;DECLAREv_modINTDEFAULT0;DECLAREv_salary1DOUBLEDEFAULT0;DECLAREv_salary2DOUBLEDEFAULT0;DECLAREc1CURSORFORSELECTCAST(salaryASDOUBLE)FROMstaffWHEREDEPT=deptNumberORDERBYsalary;DECLAREEXITHANDLERFORNOTFOUNDSETmedianSalary=6666;--initializeOUTparameterSETmedianSalary=0;SELECTCOUNT(*)INTOv_numRecordsFROMstaffWHEREDEPT=deptNumber;OPENc1;SETv_mod=MOD(v_numRecords,2);CASEv_modWHEN0THENWHILEv_counter<(v_numRecords/2+1)DOSETv_salary1=v_salary2;FETCHc1INTOv_salary2;SETv_counter=v_counter+1;ENDWHILE;SETmedianSalary=(v_salary1+v_salary2)/2;WHEN1THENWHILEv_counter<(v_numRecords/2+1)DOFETCHc1INTOmedianSalary;SETv_counter=v_counter+1;ENDWHILE;ENDCASE;END@