Collection Contents 上一页 下一页 PDF

MobiLink 和远程数据访问的 ODBC 驱动程序

iAnywhere Solutions ODBC Driver for Oracle

存储过程结果


当连接选项 ProcedureRetResults 处于活动状态时,驱动程序从存储过程/函数返回结果集。另外,SQLGetInfo(SQL_MULT_RESULTS_SETS) 将返回 Y,SQLGetInfo(SQL_BATCH_SUPPORT) 将返回 SQL_BS_SELECT_PROC。如果选中该选项并执行不返回结果集的存储过程,将会对性能造成轻微影响。

该功能要求存储过程采用某种特定的格式。首先,必须创建一个程序包来定义该过程中使用的所有游标,然后才可使用新游标来创建该过程。例如:

Create or replace package GEN_PACKAGE as
CURSOR G1 is select CHARCOL from GTABLE2;
type GTABLE2CHARCOL is ref cursor return G1%rowtype;
end GEN_PACKAGE;
Create or replace procedure GEN_PROCEDURE1 (
  rset IN OUT GEN_PACKAGE.GTABLE2
  CHARCOL, icol INTEGER) as
begin
   open rset for select CHARCOL from GTABLE2
     where INTEGERCOL <= icol order by INTEGERCOL;
end;

执行带有结果集的存储过程时,请不要在该过程的参数列表中包括结果集参数。上面描述的示例将按如下方式执行:

{call GEN_PROCEDURE1 (?)}

其中,? 是代表 icol 变量的参数。

有关详细信息,请参考 Oracle SQL 手册。


Collection Contents 上一页 下一页 PDF