1. 前言
Oracle中的游标使用是难点,其中一种强类型游标(REF CURSOR)游标,可以和帆软FineReport结合实现利用存储过程传入参数得到特定的数据集,直接调用为帆软的数据集。
背景知识备注:(REF CURSOR)是一种参数化游标,它可以返回任意类型的SQL查询结果。它在运行时绑定结果集的类型,提供了更大的灵活性。强类型游标通常用于存储过程和函数中,作为输出参数,允许调用者处理返回的结果集。
2. 操作
2.1 建立Oracle11g的测试表
create table DRCS
(
c1 VARCHAR2(1),
c2 NUMBER,
c3 NUMBER
)
2.2 插入一些测试数据
2.3 创建存储过程
CREATE OR REPLACE PROCEDURE CURSE_TEST(v_c1 IN VARCHAR,
c_cursor OUT SYS_REFCURSOR) AS
BEGIN
OPEN c_cursor FOR
SELECT *
FROM DRCS
WHERE C1 = v_c1;
END;
存储过程含有一个传入参数v_c1,他被内部WHERE条件下面引用,达到不同参数得到不同的结果集;注意C1的数据类型需要和v_c1变量的数据类型保持一致,否则在帆软界面会报错。
2.4 帆软界面查询
选择数据源选择存储函数名字,设置默认的参数(这个参数通常和参数面板中参数一致),然后预览得到查询结果。