WEB开发网
开发学院数据库DB2 使用 InfoSphere Data Architect 对 DB2 存储过程... 阅读

使用 InfoSphere Data Architect 对 DB2 存储过程进行开发、调试与部署

 2010-05-13 00:00:00 来源:WEB开发网   
核心提示: 此时这个新创建的存储过程已经被部署到数据库中,通过“数据源资源管理器”可以查看存储过程在数据库中的保存位置,使用 InfoSphere Data Architect 对 DB2 存储过程进行开发、调试与部署(10),如下图:图 15. 部署在数据库上的存储过程在&ldqu

此时这个新创建的存储过程已经被部署到数据库中,通过“数据源资源管理器”可以查看存储过程在数据库中的保存位置,如下图:

图 15. 部署在数据库上的存储过程
使用 InfoSphere Data Architect 对 DB2 存储过程进行开发、调试与部署

在“SQL 结果”视图中可以查看存储过程在数据库中创建的执行结果,如下图:

图 16. 部署存储过程的执行结果
使用 InfoSphere Data Architect 对 DB2 存储过程进行开发、调试与部署

查看原图(大图)

利用向导创建的存储过程包含一个 SQL 查询语句和错误处理逻辑,根据本文示例的需求,在编辑器中对存储过程进行修改,添加业务逻辑实现雇员姓名重命名功能,更新后的存储过程代码如下:

清单 4. 更新后的存储过程代码

 CREATE PROCEDURE TESTEMPLOYEESP ( IN IN_EMPLOYEE_NAME VARCHAR(30), 
    OUT SQLSTATE_OUT CHAR(5), 
    OUT SQLCODE_OUT INTEGER ) 
 DYNAMIC RESULT SETS 1 
 --------------------------------------------------------------------- 
 -- SQL Stored Procedure 
 -- IN_EMPLOYEE_NAME 
 -- SQLSTATE_OUT 
 -- SQLCODE_OUT 
 --------------------------------------------------------------------- 
 P1: BEGIN 
 -- Declare variables 
 DECLARE SQLSTATE CHAR(5) DEFAULT '00000'; 
 DECLARE SQLCODE INT DEFAULT 0; 
 
 DECLARE v_employee_id BIGINT; 
 DECLARE v_employee_name VARCHAR(30); 
 DECLARE v_count INT DEFAULT 0; 
 DECLARE at_end INT DEFAULT 0; 
 DECLARE not_found CONDITION FOR SQLSTATE '02000'; 
 
 -- Declare cursor 
 DECLARE cursor1 CURSOR WITH RETURN FOR 
  SELECT ID, NAME 
  FROM EMPLOYEE 
  WHERE NAME = IN_EMPLOYEE_NAME; 
 DECLARE CONTINUE HANDLER FOR not_found 
  SET at_end = 1; 
 -- Declare handler 
 DECLARE EXIT HANDLER FOR SQLEXCEPTION 
  SELECT SQLSTATE, SQLCODE INTO SQLSTATE_OUT, SQLCODE_OUT 
  FROM SYSIBM.SYSDUMMY1; 
 
 -- Cursor left open for client application 
 OPEN cursor1; 
 FETCH cursor1 INTO v_employee_id, v_employee_name; 
 WHILE at_end=0 DO 
  SET v_count = v_count + 1; 
  UPDATE EMPLOYEE SET NAME=(TRIM(v_employee_name) || '_' || 
  TRIM(CHAR(v_count))) WHERE ID=v_employee_id; 
  SET at_end=0; 
  FETCH cursor1 INTO v_employee_id, v_employee_name; 
 END WHILE; 
 CLOSE cursor1; 
 COMMIT; 
 SET SQLSTATE_OUT = SQLSTATE; 
 SET SQLCODE_OUT = SQLCODE; 
 END P1 

上一页  5 6 7 8 9 10 

Tags:使用 InfoSphere Data

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接