最具影响力的数字化技术在线社区

168大数据

 找回密码
 立即注册

QQ登录

只需一步,快速开始

1 2 3 4 5
开启左侧

润乾报表4.0里如何调用oracle数据库存储过程

[复制链接]
发表于 2015-6-9 13:57:22 | 显示全部楼层 |阅读模式

马上注册,结交更多数据大咖,获取更多知识干货,轻松玩转大数据

您需要 登录 才可以下载或查看,没有帐号?立即注册

x

报表数据集的数据来自存储过程。sql语句执行的时候要先编译,然后执行。报表存储过程就是编译好了的一些sql语句。应用程序需要用的时候直接调用就可以了,所以效率比较高。报表存储过程可以用流控制语句编写,有很强的灵活性,可以完成复杂的判断和复杂的运算。报表存储过程可以返回报表结果集,可以返回报表参数,也可以同时返回报表结果集和报表参数。

报表存储过程的参数分为输入参数和输出参数两种。输入报表参数是存储过程执行的条件参数。输出报表参数类似于返回值,但是输出报表参数具有两个重要的优势:可以使用输出报表参数从存储过程传递出VarChar,Int,Money或任何其他数据类型的值,而返回值则只能返回整数。输出参数的另一个优势就是在一个存储过程中可以有多个输出报表参数,一个存储过程可以包含1024个参数(其中包括输入和输出报表参数),但是报表只能包含一个返回值。

在调用存储过程中,其中以Oracle的存储过程较为特殊,因为oracle数据库对于存储过程的输出参数有一定要求,需要设置为游标类型,下面就举个例子:

存储过程写法:

CREATE OR REPLACE PACKAGE TYPES AS
TYPE RQ_REF_CURSOR IS REF CURSOR;
– procedure getData( V_TEMP OUT TYPES.RQ_REF_CURSOR);
END;
CREATE OR REPLACE PROCEDURE RQ_TEST_CUR
(
V_TEMP OUT TYPES.RQ_REF_CURSOR,
PID IN VARCHAR
)
AS
BEGIN
OPEN V_TEMP FOR SELECT NAME FROM TEST WHERE ID = PID;
END RQ_TEST_CUR;
– Create table
create table TEST
(
ID VARCHAR2(10) not null,
NAME VARCHAR2(10)
)
tablespace USERS
pctfree 10
initrans 1
maxtrans 255
storage
(
initial 64K
minextents 1
maxextents unlimited
);
– Create/Recreate primary, unique and foreign key constraints
alter table TEST
add constraint TEST_PK unique (ID)
using index
tablespace USERS
pctfree 10
initrans 2
maxtrans 255
storage
(
initial 64K
minextents 1
maxextents unlimited
);

在报表中数据集的设置:


数据集中参数的设置:

报表参数的设置:


报表模版设计:

需要注意的是,当在单元格中用call函数调用存储过程时,执行存储过程,返回结果数据集合,只能返回单列数据,如果存储过程返回多个字段,则返回第一个字段的结果值.



楼主热帖
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

站长推荐上一条 /1 下一条

关于我们|小黑屋|Archiver|168大数据 ( 京ICP备14035423号|申请友情链接

GMT+8, 2024-3-29 18:36

Powered by BI168大数据社区

© 2012-2014 168大数据

快速回复 返回顶部 返回列表