DB2 SQL存储过程语法官方权威指南

豆豆网   技术应用频道   2007年07月03日  【字号: 收藏本文

内容摘要:DB2 SQL存储过程语法

  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

责编:豆豆技术应用

正在加载评论...