次に、SELECT 文で更新可能なカーソルを使用するプロシージャの例を示します。次の例では、ストアドプロシージャ言語を使用して、ローに対して位置付け更新を実行する方法を示しています。
CREATE PROCEDURE UpdateSalary( IN employeeIdent INT, IN salaryIncrease NUMERIC(10,3) ) BEGIN -- Procedure to increase (or decrease) an employee's salary DECLARE err_notfound EXCEPTION FOR SQLSTATE '02000'; DECLARE oldSalary NUMERIC(20,3); DECLARE employeeCursor CURSOR FOR SELECT Salary from Employees WHERE EmployeeID = employeeIdent FOR UPDATE; OPEN employeeCursor; FETCH employeeCursor INTO oldSalary FOR UPDATE; IF SQLSTATE = err_notfound THEN MESSAGE 'No such employee' TO CLIENT; ELSE UPDATE Employees SET Salary = oldSalary + salaryIncrease WHERE CURRENT OF employeeCursor; END IF; CLOSE employeeCursor; END; |
上のストアドプロシージャを呼び出すには、次の文を入力してください。
CALL UpdateSalary( 105, 220.00 ); |
![]() |
DocCommentXchange で意見交換できます
|
Copyright © 2013, SAP AG or an SAP affiliate company. - SAP Sybase SQL Anywhere 16.0 |