在 SQL Server 中,我可以创建创建临时表的存储过程,将值插入其中,然后从该临时表中返回一个选择作为复合 Crystal Report 的结果集。
我不知道如何在 Oracle 存储过程中执行它。
我知道我可以创建一个字符串变量,然后立即执行。但后来我不知道如何插入值,结果集将是 Crystal Report 源。
在 SQL Server 中,我可以创建创建临时表的存储过程,将值插入其中,然后从该临时表中返回一个选择作为复合 Crystal Report 的结果集。
我不知道如何在 Oracle 存储过程中执行它。
我知道我可以创建一个字符串变量,然后立即执行。但后来我不知道如何插入值,结果集将是 Crystal Report 源。
您可以使用以下 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;
希望能帮助到你,
迪曼