Click here to view and discuss this page in DocCommentXchange. In the future, you will be sent there automatically.

SQL Anywhere 11.0.1 (中文) » SQL Anywhere 服务器 - SQL 的用法 » 存储过程和触发器 » 使用过程、触发器和批处理 » 过程简介

 

在结果集中返回过程结果

除了在单独的参数中将结果返回给调用环境外,过程还可以结果集的形式返回信息。结果集通常是查询的结果。以下过程返回包含指定部门中每个雇员的薪水的结果集:

CREATE PROCEDURE SalaryList( IN department_id INT )
RESULT ( "Employee ID" INT, Salary NUMERIC(20,3) )
BEGIN
   SELECT EmployeeID, Salary
    FROM Employees
    WHERE Employees.DepartmentID = department_id;
END;

如果 Interactive SQL 调用此过程,则 RESULT 子句中的姓名与查询的结果对应,用作所显示结果中的列标题。

要从 Interactive SQL 测试此过程,可以利用 CALL 语句调用该过程,并指定公司的某一部门。在 Interactive SQL 中,结果会出现在 [结果] 窗格的 [结果] 选项卡中。

示例

要列出研发部门(部门 ID 为 100)中雇员的薪水,请键入以下命令:

CALL SalaryList( 100 );
Employee ID Salary
102 45700.000
105 62000.000
160 57490.000
243 72995.000
... ...

只有在 [选项] 窗口的 [结果] 选项卡上启用返回多个结果集选项,Interactive SQL 才能返回多个结果集。每个结果集在 [结果] 窗格中均出现在单独的选项卡上。

另请参见