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 的用法 » 存储过程和触发器 » 使用过程、触发器和批处理 » 从过程返回结果

 

从过程返回多个结果集

要使 Interactive SQL 可以返回多个结果集,需要先在 [选项] 窗口的 [结果] 选项卡上启用此选项。缺省情况下,此选项被禁用。此设置的更改会在新创建的连接(例如新窗口)中生效。

♦  启用多个结果集功能 (Sybase Central)
  1. 以具有 DBA 权限的用户身份连接到数据库。

  2. 在左窗格中,选择数据库,然后选择 [文件] » [打开 Interactive SQL]。

  3. 在 Interactive SQL 中,选择 [工具] » [选项]。

  4. 单击 [SQL Anywhere]。

  5. 在 [结果] 选项卡上,选择 [显示所有结果集]。

  6. 单击 [确定]。

启用此选项后,过程可以将多个结果集返回给调用环境。如果采用 RESULT 子句,结果集必须是兼容的:项目数必须与 SELECT 列表中的项目数相同,数据类型必须全都可以自动转换为 RESULT 列表中所列的数据类型。

示例

以下过程列出在数据库中列出的所有雇员、客户和联系人的姓名:

CREATE PROCEDURE ListPeople()
RESULT ( Surname CHAR(36), GivenName CHAR(36) )
BEGIN
   SELECT Surname, GivenName
   FROM Employees;
   SELECT Surname, GivenName
   FROM Customers;
   SELECT Surname, GivenName
   FROM Contacts;
END;

要在 Interactive SQL 中测试此过程并查看多个结果集,请在 [SQL 语句] 窗格中输入以下语句:

CALL ListPeople ();