ADF:如何使用VO处理查询条件的值属于某一动态值列表的问题
来源:互联网 发布:死乎wwbb 编辑:程序博客网 时间:2024/05/10 08:22
Oracle数据库的PLSQL 提供了MEMBER OF语句来支持类似IN 语句的功能。
在ADF VO中 如果需要使用MEMBER OF语句,需要进行如下配置:
首先如下所示,一个VO SQL 如下:
select nvl(sum(py.invoice_amount-nvl(py.total_payment,0)),0) total_invoiced_not_paidFROM contract ct, contract_line ln, contract_line_payments pyWHERE ct.id = ln.header_idAND ln.id = py.line_idAND py.deleted != 'Y'AND ct.deleted != 'Y'AND ln.deleted != 'Y'AND ct.contract_no MEMBER OF CAST(:contractNos AS CHARTABLETYPE
其中查询条件之一是限定ct.contract_no 的值必须在MEMBER OF 所指定的结果集中CAST(:contractNos AS CHARTABLETYPE)
由于该查询参数的值是在运行时动态指定的,因此我们定义了一个变量:contractNos,该绑定变量在View Object中定义如下:
<Variable Name="contractNos" Kind="where" Type="oracle.jbo.domain.Array" ColumnType="CHARTABLETYPE" ElemType="java.lang.String">
在定义该变量时,我们特别指定了该变量的数据库类型为CHARTABLETYPE,与之配合在数据库端需要创建该类型,如下:
CREATE OR REPLACE TYPE "CHARTABLETYPE" as table of varchar2(4000);
执行查询代码:
import java.util.ArrayList;import oracle.jbo.domain.Array;.....public void runQuery(ArrayList contractNos) { Array contractNosArray; try { contractNosArray = new Array(contractNos); this.setcontractNos(contractNosArray); } catch (Exception e) { e.printStackTrace(); } this.executeQuery(); }
- ADF:如何使用VO处理查询条件的值属于某一动态值列表的问题
- ADF VO排序及VO的三种查询模式
- Oracle ADF VO排序及VO的查询模式
- 关于Oracle ADF 11g的VO处理
- ADF(BC)--当使用绑定VO的<af:table>时可能会导致的内存问题
- ADF 三种改变VO查询条件方式
- ADF VO排序及VO的三种查询模式(转)
- ADF:获取下拉列表值的方法
- sql数据库全库查询的问题-快速查询特定条件属于哪张表
- Oracle ADF VO常用的API
- 如何查询某一字段中相同值的纪录?
- 如何查询某一字段中相同值的纪录?
- ADF:给VO动态创建检索基准并获取程序需要的数据
- 如何使用ADF中的查询
- 从翻页条件查询列表及其详情页动态切换,免于条件携带的实现方案
- 使用ADF-BC 实现查询功能之四:通过代码动态设置Where条件参数
- 使用ADF-BC 实现查询功能之八:通过代码动态设置Criteria条件参数
- mybatis的动态条件查询
- 关于flex的swf
- 苹果http视频点播技术
- WLAN API
- IOS 下的音视频解决方案-FFMPEG
- 生活写照
- ADF:如何使用VO处理查询条件的值属于某一动态值列表的问题
- PHP中双引号""与单引号''使用区别
- pb(bowerbuider9.0)编程出现的问题及解决办法
- Matlab------------Current Folder的默认文件夹
- [转载]网站使用QQ登陆
- 使用jquery动态创建的东西绑定事件没反应
- VLC(Video Lan Client)
- C与C++基础面试题
- Linux下chkconfig命令详解