2014-06-22 Created By BaoXinjian

一、摘要


在Report Builder中,有两种数据源取法,一种是基于SQL的,另外一种就是基于Ref Cursor的写法

Ref Cursor在Report Builder 中主要用于一些公用的查询会使用到

比如有多个Report可能会用到同一段SQL或者类似SQL,一般会将这个SQL独立出来作为Ref Cursor放在Package中

当Report调用时,就可以通过调用package中的ref cursor实现查询,而不是讲这段SQL每个report都重复写一遍,当SQL需修改时,也只需改Package中的ref cursor即可

在调用Ref Cursor时,

  • 一种只在Package中定义Ref Cursor的栏位结构,具体的查询语句在Report中定义
  • 一种在Package中不仅仅定义Ref Cursor的栏位结构,也同时定义了如何查询,在Report中只需输入参数调用该Ref Cursor即可

二、分步解析


案例: 定义一个Employee信息获取公用Ref-Cursor,该查询定义在Package中,可被多个report builder调用共享

Step1. 定义了两种类型的ref_cursor,

  • 1. employee_refcursor只定义了结构, 具体的SQL需在report builder中进行复制
  • 2. query_employee定义了结构和具体的SQL, 所以Report builder只需传入参数即可
/*定义ref cursor package头*/
CREATE OR REPLACE PACKAGE bxj_ref_cursor_pkg ISTYPE employee_rec IS RECORD(user_id      FND_USER.USER_ID%TYPE,employee_num HR_EMPLOYEES.EMPLOYEE_NUM%TYPE,user_name    FND_USER.USER_NAME%TYPE,party_type   HZ_PARTIES.PARTY_TYPE%TYPE,prefix       HR_EMPLOYEES.PREFIX%TYPE,full_name    HR_EMPLOYEES.FULL_NAME%TYPE);TYPE employee_refcursor IS REF CURSOR RETURN employee_rec;FUNCTION query_employee(user_id NUMBER) RETURN bxj_ref_cursor_pkg.employee_refcursor;END;

Step2. 定义ref_cursor查询体的如何返回

 1 /*定义ref cursor package 体*/
 2 CREATE OR REPLACE PACKAGE BODY bxj_ref_cursor_pkg IS
 3
 4   FUNCTION query_employee(user_id number)
 5     RETURN bxj_ref_cursor_pkg.employee_refcursor IS
 6     temp_employee_cursor bxj_ref_cursor_pkg.employee_refcursor;
 7   BEGIN
 8
 9     OPEN temp_employee_cursor FOR
10       SELECT user_id, employee_num, user_name, party_type, prefix, full_name
11         FROM fnd_user fu, hz_parties hp, hr_employees he
12        WHERE fu.person_party_id = hp.party_id
13          AND hp.person_identifier = he.employee_id
14          AND fu.user_name = 'GAVIN';
15
16     RETURN temp_employee_cursor;
17
18   END;
19
20 END;

Step3. 在report builder中的两种Query (SQL Query和Ref Cursor Query)

Step4. Query触发器中返回Ref Cursor结构体

Thanks and Regards

转载于:https://www.cnblogs.com/eastsea/p/3802394.html

Report_报表中Ref Cursor数据源的概念和用法(案例)相关推荐

  1. 如何在Power BI Desktop报表中使用Web数据源

    This article explores various ways to use a Web data source in Power BI Desktop reports. 本文探讨了Power ...

  2. Android中Cursor类的概念和用法

    使用过 SQLite数据库的童鞋对 Cursor 应该不陌生,加深自己和大家对Android 中使用 Cursor 的理解. 关于 Cursor 在你理解和使用 Android Cursor 的时候你 ...

  3. 润乾报表数据源配置 Linux,润乾报表中连接 ODBC 数据源的报表部署方法

    在润乾报表中提供了多种数据源的连接配置,其中包括关系数据库(JDBC).ODBC 数据源和多维数据库.在部署报表应用的时候,以上提到的各种数据源的配置也不尽相同,下面我们介绍一下如何部署连接 ODBC ...

  4. Android Cursor类的概念和用法

    http://www.2cto.com/kf/201109/103163.html 关于 Cursor 在你理解和使用 Android Cursor 的时候你必须先知道关于 Cursor 的几件事情: ...

  5. java 守护线程 作用_java中守护线程的一些概念和用法

    网上的资料中,守护线程的功能一般都是"只要当前JVM实例中尚存任何一个非守护线程没有结束,守护线程就全部工作:只有当最后一个非守护线程结束是,守护线程随着JVM一同结束工作,Daemon作用 ...

  6. Oracle中游标Cursor介绍

    转自:http://zohan.group.iteye.com/group/wiki/2278-cursor Oracle中游标Cursor介绍 一  概念 游标是SQL的一个内存工作区,由系统或用户 ...

  7. 将报表模板中数据集的数据源名称与服务器中的数据源名称修改一致.,连接数据库,服务器端的几个常见错误...

    1错误关键字:数据集ds1中未设定数据源名称 现象: 产生数据工厂:com.runqian report4.dataset.SQLDataSetFactory 失败:数据集中,数据集ds1 中未设定数 ...

  8. 润乾报表 :com.runqian report4.dataset.SQLDataSetFactory 失败:数据集中,数据集ds1 中未设定数据源名称,且无默认数据源,请检查数据源设定

    润乾报表 产生数据工厂:com.runqian report4.dataset.SQLDataSetFactory 失败:数据集中,数据集ds1 中未设定数据源名称,且无默认数据源,请检查数据源设定 ...

  9. oracle中的cursor属性,Oracle Cursors语法总结

    一.Oracle的Cursors概念: 游标:用来查询数据库,获取记录集合(结果集)的指针,可以让开发者一次访问一行结果集,在每条结果集上作操作. 二.Oracle的Cursors分类: 1.静态游标 ...

最新文章

  1. 我,斯坦福AI读博,李飞飞是师娘,5年5篇顶会论文,依然一度抑郁怀疑人生
  2. R语言使用ggplot2包使用geom_dotplot函数绘制分组点图(改变分组的次序)实战(dot plot)
  3. C#发现之旅第九讲 ASP.NET验证码技术
  4. [转]一位研究生的职业生涯规划和心得体会
  5. Mybatis+mysql动态分页查询数据案例——Mybatis的配置文件(mybatis-config.xml)
  6. 机器学习之线性回归(python)
  7. JAVA 程序员需要用到 10 个测试框架和库
  8. Visual Studio 2013中因SignalR的Browser Link引起的Javascript错误一则
  9. paip.获取文件名从路径uapi java python php总结...
  10. win10运行命令大全
  11. FastSearch - 快速搜索包含指定内容的所有文件
  12. 计算机通信子网的作用,通信子网
  13. Redis学习资料汇总
  14. 验证p码绕过、密码找回漏洞。。
  15. $.ajax()方法详解
  16. 执行引擎的工作过程、Java代码编译和执行的过程、解释器、JIT编译器
  17. 开学季适合学生党的蓝牙耳机,音质好的蓝牙耳机排行
  18. 1253号C语言程序设计试题,2016年1月试卷号1253C语言程序设计A.pdf
  19. WINDOWS10突然无法识别U盘(设备和驱动器中不显示)的解决方法
  20. JS自上而下递归遍历计算树结构节点数值和

热门文章

  1. Palette优化界面色彩搭配
  2. VCSA中配置时间和时区,实测至6.5适用
  3. Zabbix 自定义Item经常Not Supported解决
  4. “代理”那点事儿-使用代理和搭建简单代理服务
  5. 【cocos2d-x从c++到js】16:使用cocos2d-console工具转换脚本为字节码
  6. centos c++ 找不到头文件mysql.h
  7. 使用nginx在Windows部署网站https服务
  8. php调用for循环函数吗,我需要将“函数”与“for循环”结合使用php
  9. 7 怎么查看文件夹容量_C盘(系统盘)磁盘剩余容量告警?如何解决与预防,C盘容量告急解决方法简单汇总!...
  10. InsecureRequestWarning: Unverified HTTPS request is being made to host(requests证书警告)