如何使用 RECORD 作为 OUT 参数调用预言机存储过程



>我在oracle数据库中有一个过程,看起来像

create or replace PACKAGE MY_PACKAGE AS
  TYPE MY_RECORD IS RECORD
  (
    first_name abc.first_name%TYPE,
    middle_name abc.middle_name%TYPE,
    last_name abc.last_name%TYPE 
  );
  TYPE MY_RECORD_REF IS REF CURSOR RETURN MY_RECORD;
  PROCEDURE getDetails(
    last_name IN OUT VARCHAR2,
    V_MY_RECORD_REF   OUT MY_RECORD_REF);
END MY_PACKAGE;

我想调用存储过程来获取数据并显示它们,但无法这样做。

有人可以帮忙吗?

提前谢谢。

该记录用于提供结果集的定义。使用打包类型定义调用过程时使用的局部变量。

declare
    l_result_Set MY_PACKAGE.MY_RECORD_REF;
    l_record MY_PACKAGE.MY_RECORD;
    l_name abc.last_name%TYPE ;
begin
    -- get the results
    MY_PACKAGE.getDetails(
          l_name 
          , l_result_Set );
    -- now read them
    loop
        fetch l_result_Set into l_record;
        exit when l_result_Set%notfound;
        -- do stuff here
    end loop;
end;

"你知道如何在Java中做同样的事情吗?">

引用游标是 JDBC 结果集。Andrej Koelewijn在这篇博文中有一个简短的例子。请注意使用 Oracle 库数据类型 OracleTypes.CURSOR 。ResultSet 的完整内容在 JDBC Deve 指南中介绍。了解更多。

最新更新