1

在 SQL Server 中,我可以创建创建临时表的存储过程,将值插入其中,然后从该临时表中返回一个选择作为复合 Crystal Report 的结果集。

我不知道如何在 Oracle 存储过程中执行它。

我知道我可以创建一个字符串变量,然后立即执行。但后来我不知道如何插入值,结果集将是 Crystal Report 源。

4

1 回答 1

0

您可以使用以下 plsql 程序进行尝试。

CREATE PROCEDURE testRS (lcout OUT sys_refcursor) AS
  BEGIN
    OPEN lcout 
    FOR 
    SELECT object_name, object_type 
    FROM user_objects;
  END testRS;

sys_refcursor 是一个弱游标,这意味着它可以指向任何查询,并且没有强制类型。

要在 sqlplus 下执行(水晶报表下应该有类似的 API),您需要定义一个 sqlplus 变量,该变量保存过程中游标的结果集。

-- Define sqlplus variable
SQL> var ncc refcursor;

-- Call to procedure.
SQL> exec TESTPKG.testRS( :ncc );

PL/SQL procedure successfully completed.

-- Display the resultset.
SQL> print :ncc;

希望能帮助到你,

迪曼

于 2015-06-17T15:48:15.333 回答