Oracle EBS OAF VO(View Object)开发中的绑定方式(Binding Style)的介绍
在OAF VO开发中,Binding Style主要用于对VO的where clause做动态传值,总共有三种方式
1. Oracle Named
2. Oracle Positional
3. JDBC Positional
Oracle Positional
Oracle Positional 是最常用的一种方式,Oracle文档的介绍是
This style represents parameters as colons followed by numbers, as in the following code fragment:WHERE bar = :1 AND foo = :2 In this style, the numbers are just for easier readability: Parameters are passed into the view object in the order in which the numbers occur. The above fragment, for example, is equivalent to WHERE bar = :70 AND foo = :3
简单来说,这种方式中的参数都是以‘:’和数字来声明的,比如:WHERE bar = :1 AND foo = :2。这种方式来说,数字只是用来增加可读性,参数只会根据数字在VO Sql Statement中出现的顺序传入到View Object中,而不会根据数字的大小而传入。比如,上面的代码片段和下面这个是一样的效果WHERE bar = :70 AND foo = :3,下面会在实现中具体介绍。
如何在VO使用Oracle Positional绑定方式
首先,我们需要在VO定义界面上进行设置,
1. Binding Style 设成 Oracle Positional
2. 在VO SQL Statement 中的where clause里面使用 ‘:’加上数字作为参数,比如 :1.
在VO上设置完之后,我们需要执行VO查询之前,使用vo.setWhereClauseParam(int index, Object value)对VO的绑定参数进行赋值,如下面的代码。
public void initShipToLocation(String org_id) { RcvShipToLocationVOImpl vo =this.getRcvShipToLocationVO1(); vo.setWhereClause(null); vo.setWhereClauseParam(0, new Number(Integer.parseInt(org_id))); } |
使用Oracle Positional 绑定方式需要注意的问题
1. 在使用vo.setWhereClauseParam(int index, Object value)进行赋值的时候, index一定是从0开始的,接着就是1,2,3,…… .但是在VO SQL Statement中,参数却不是必须从0开始,而且后面的参数的数值也不必比前面的大。比如下面的也是可以的,
但是在使用vo.setWhereClauseParam()给VO绑定参数值的时候一定要使用0和1作为index,而且index必须和绑定参数在VO SQL Statement中出现的顺序对应的类型一致,比如
public void initShipToLocation(String org_id) { RcvShipToLocationVOImpl vo =this.getRcvShipToLocationVO1(); vo.setWhereClause(null); vo.setWhereClauseParam(0, new Number(Integer.parseInt(org_id))); vo.setWhereClauseParam(1, "hello"); } |
如果使用了其它的任何的Index,就会抛出下面的异常(无效的列索引)
oracle.apps.fnd.framework.OAException: oracle.jbo.SQLStmtException: JBO-27122:Invalid column index …..
2. 如果在VO SQL Statement中使用了:加数字作为绑定参数,并且在给VO设置绑定值的时候使用了vo.setWhereClauseParam(),那么一定要保证VO的绑定方式(Binding Style)为 Oracle Positional,否则可能会出现下面的异常(无效的列类型)
oracle.apps.fnd.framework.OAException: oracle.jbo.SQLStmtException: JBO-27122:Invalid column type …..
3. 如果VO SQL Statement中两个或多个绑定参数每次一定是一样的值传入,在VO SQL Statement虽然可以使用相同的数字作为绑定参数,但在使用vo.setWhereClauseParam()设置绑定值的时候也要分别设值,而且建议不要使用相同的数字作为绑定参数。
public void initShipToLocation(String org_id) { RcvShipToLocationVOImpl vo =this.getRcvShipToLocationVO1(); vo.setWhereClause(null); vo.setWhereClauseParam(1, "hello"); vo.setWhereClauseParam(2, "hello"); vo.setWhereClauseParam(0, new Number(Integer.parseInt(org_id))); } |
否则VO在执行查询的时候会报下面的错误
java.sql.SQLException: 索引中丢失 IN 或 OUT参数:: 8
Oracle Named
Oracle Named 绑定方式是VO定义中的默认方式,也是非常常用的一种方式,Oracle文档的介绍是
This style represents parameters as colons followed by identifiers, as in the following code fragment:WHERE bar = :barparam AND foo = :fooparam Unlike the positional styles, the names of the parameters are actually used when the application fills the parameter values.
顾名思义,Oracle Named方式就是‘:’和名字的方式来表示参数,而不是像Oracle Positional用数字.这种方式的好处就是相同的参数可以使用同一个名字,在VO初始化参数的时候对相同名字的参数只用初始化一次就可以了,在下面的实现中会具体介绍.
如何在VO使用Oracle Named绑定方式
首先,我们需要在VO定义界面上进行设置,
1. 在Bind Variable 页面上定义要在VO SQL Statement中使用的绑定参数的名字,类型和默认值。
2. 在VO SQL Statement页面上设置Binding Style为 Oracle Named.
3. 在VO SQL Statement 中的where clause里面使用 ‘:’加上Bind Variable中定义的Bind variable作为参数,比如 :inv_org_id,而且这些参数我们可以使用多次。
在VO定义上设置完之后,我们需要执行VO查询之前,使用vo.setNamedWhereClauseParam(String name, Object value)对VO的绑定参数进行赋值,如下面的代码。
public void initRcvSubinventory(String orgId, String itemId, String receiptSourceCode) { RcvSubinventoryLovImpl vo =this.getRcvSubinventoryLov1(); vo.setWhereClause(null); vo.setWhereClauseParams(null); vo.setNamedWhereClauseParam("inv_org_id", orgId); vo.setNamedWhereClauseParam("rcv_item_id", itemId); vo.setNamedWhereClauseParam("receipt_source_code", receiptSourceCode); } |
使用Oracle Named 绑定方式需要注意的问题
1. 在使用Oracle Named绑定方式的时候一定要声明Bind Variable,如果没有声明就在VO SQL Statement中使用,在运行时就会出现下面的错误.
(oracle.jbo.SQLStmtException) JBO-27122: SQL error during statement preparation.
## Detail 0 ##
(java.sql.SQLException) Missing IN or OUT parameter at index:: 1
2. 相反,如果定义了Bind Variable, 但是在VO SQL Statement中没有使用他,或者定义的类型错误,在运行时就会抛出下面的错误
oracle.jbo.SQLStmtException: JBO-27122: SQL error during statement preparation.
## Detail 0 ##
java.sql.SQLException: Attempt to set a parameter name that does not occur in the
SQL: inv_org_id
3. 如果在定义Bind Variable的时候没有指定默认值,而且在运行时没有使用vo.setNamedWhereClauseParam()初始化Bind Variable,那么Bind Variable默认将会使用NULL值.但一般情况下,NULL不是用户需要的,请记得设置默认值或者运行时为Bind Variable指定值。
JDBC Positional
这种绑定方式在EBS OAF开发中是不常见的,因为Oracle文档中是这么介绍的
This style represents parameters as question marks, as in the following code fragment:WHERE foo = ? AND bar = ?. This should be used only if you are working with non-oracle database.
因为EBS应该没有使用非ORACLE数据库的,所以应该在OAF开发中是用不到的,但是在ADF开发中应该是用得到的,但这个不在我们今天讨论的范围之内。
相关推荐
资源内项目源码是来自个人的毕业设计,代码都测试ok,包含源码、数据集、可视化页面和部署说明,可产生核心指标曲线图、混淆矩阵、F1分数曲线、精确率-召回率曲线、验证集预测结果、标签分布图。都是运行成功后才上传资源,毕设答辩评审绝对信服的保底85分以上,放心下载使用,拿来就能用。包含源码、数据集、可视化页面和部署说明一站式服务,拿来就能用的绝对好资源!!! 项目备注 1、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用! 2、本项目适合计算机相关专业(如计科、人工智能、通信工程、自动化、电子信息等)的在校学生、老师或者企业员工下载学习,也适合小白学习进阶,当然也可作为毕设项目、课程设计、大作业、项目初期立项演示等。 3、如果基础还行,也可在此代码基础上进行修改,以实现其他功能,也可用于毕设、课设、作业等。 下载后请首先打开README.txt文件,仅供学习参考, 切勿用于商业用途。
内容概要:本文详细探讨了大语言模型(LLMs)在教育应用中遇到的知识冲突问题,包括概念定义、事实陈述和逻辑推理层面的认知不一致性。文章分析了知识冲突的技术成因,如训练数据噪声、参数化知识表示的局限、推理机制的缺陷、模型架构的不足及外部知识的偏差,并探讨了这些因素对教育应用的深远影响。文中提出了多维度的解决路径,如通过数据增强优化知识表示、利用提示强化上下文连贯、开发量规完善模型评估等。此外,文章从社会文化的宏观视角剖析了知识冲突的外部驱动因素,探讨如何在多元异质、动态演进的社会建构语境中构建开放进取、兼容融通的智能教育应用体系。 适合人群:从事教育技术研究的学者、教育工作者、人工智能研究人员和技术开发者。 使用场景及目标:①帮助教育工作者理解大语言模型在教育应用中的局限性;②为技术人员提供优化大语言模型教育应用的具体策略;③促进教育人工智能技术的可靠性、适应性和普及性提升。 其他说明:文章强调了知识冲突的有效化解不仅能够提升大语言模型在教育场景中的应用价值,还将为人工智能在更广泛领域的可持续发展奠定坚实基础。
资源内项目源码是来自个人的毕业设计,代码都测试ok,包含源码、数据集、可视化页面和部署说明,可产生核心指标曲线图、混淆矩阵、F1分数曲线、精确率-召回率曲线、验证集预测结果、标签分布图。都是运行成功后才上传资源,毕设答辩评审绝对信服的保底85分以上,放心下载使用,拿来就能用。包含源码、数据集、可视化页面和部署说明一站式服务,拿来就能用的绝对好资源!!! 项目备注 1、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用! 2、本项目适合计算机相关专业(如计科、人工智能、通信工程、自动化、电子信息等)的在校学生、老师或者企业员工下载学习,也适合小白学习进阶,当然也可作为毕设项目、课程设计、大作业、项目初期立项演示等。 3、如果基础还行,也可在此代码基础上进行修改,以实现其他功能,也可用于毕设、课设、作业等。 下载后请首先打开README.txt文件,仅供学习参考, 切勿用于商业用途。
数据结构day1-思维导图顺序表
STM32超声波红外避障小车项目通过STM32微控制器实现自动避障功能。硬件部分主要包括STM32开发板、超声波传感器、红外传感器、直流电机、电池模块和电机驱动模块。超声波传感器用于测量前方障碍物的距离,红外传感器帮助小车检测地面线路或障碍物。电机驱动模块通过STM32控制直流电机的转动,从而实现小车的前进、后退和转向。 在软件方面,STM32通过编写简单的避障算法,实时读取传感器数据,并根据环境信息控制小车的运动。当超声波传感器检测到障碍物时,系统会触发后退或转向操作,避免碰撞。
哈尔滨工业大学DeepSeek公开课-从图灵测试到DeepSeek.pdf
资源内项目源码是来自个人的毕业设计,代码都测试ok,包含源码、数据集、可视化页面和部署说明,可产生核心指标曲线图、混淆矩阵、F1分数曲线、精确率-召回率曲线、验证集预测结果、标签分布图。都是运行成功后才上传资源,毕设答辩评审绝对信服的保底85分以上,放心下载使用,拿来就能用。包含源码、数据集、可视化页面和部署说明一站式服务,拿来就能用的绝对好资源!!! 项目备注 1、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用! 2、本项目适合计算机相关专业(如计科、人工智能、通信工程、自动化、电子信息等)的在校学生、老师或者企业员工下载学习,也适合小白学习进阶,当然也可作为毕设项目、课程设计、大作业、项目初期立项演示等。 3、如果基础还行,也可在此代码基础上进行修改,以实现其他功能,也可用于毕设、课设、作业等。 下载后请首先打开README.txt文件,仅供学习参考, 切勿用于商业用途。
资源内项目源码是来自个人的毕业设计,代码都测试ok,包含源码、数据集、可视化页面和部署说明,可产生核心指标曲线图、混淆矩阵、F1分数曲线、精确率-召回率曲线、验证集预测结果、标签分布图。都是运行成功后才上传资源,毕设答辩评审绝对信服的保底85分以上,放心下载使用,拿来就能用。包含源码、数据集、可视化页面和部署说明一站式服务,拿来就能用的绝对好资源!!! 项目备注 1、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用! 2、本项目适合计算机相关专业(如计科、人工智能、通信工程、自动化、电子信息等)的在校学生、老师或者企业员工下载学习,也适合小白学习进阶,当然也可作为毕设项目、课程设计、大作业、项目初期立项演示等。 3、如果基础还行,也可在此代码基础上进行修改,以实现其他功能,也可用于毕设、课设、作业等。 下载后请首先打开README.txt文件,仅供学习参考, 切勿用于商业用途。
资源内项目源码是来自个人的毕业设计,代码都测试ok,包含源码、数据集、可视化页面和部署说明,可产生核心指标曲线图、混淆矩阵、F1分数曲线、精确率-召回率曲线、验证集预测结果、标签分布图。都是运行成功后才上传资源,毕设答辩评审绝对信服的保底85分以上,放心下载使用,拿来就能用。包含源码、数据集、可视化页面和部署说明一站式服务,拿来就能用的绝对好资源!!! 项目备注 1、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用! 2、本项目适合计算机相关专业(如计科、人工智能、通信工程、自动化、电子信息等)的在校学生、老师或者企业员工下载学习,也适合小白学习进阶,当然也可作为毕设项目、课程设计、大作业、项目初期立项演示等。 3、如果基础还行,也可在此代码基础上进行修改,以实现其他功能,也可用于毕设、课设、作业等。 下载后请首先打开README.txt文件,仅供学习参考, 切勿用于商业用途。
app开发
资源内项目源码是来自个人的毕业设计,代码都测试ok,包含源码、数据集、可视化页面和部署说明,可产生核心指标曲线图、混淆矩阵、F1分数曲线、精确率-召回率曲线、验证集预测结果、标签分布图。都是运行成功后才上传资源,毕设答辩评审绝对信服的保底85分以上,放心下载使用,拿来就能用。包含源码、数据集、可视化页面和部署说明一站式服务,拿来就能用的绝对好资源!!! 项目备注 1、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用! 2、本项目适合计算机相关专业(如计科、人工智能、通信工程、自动化、电子信息等)的在校学生、老师或者企业员工下载学习,也适合小白学习进阶,当然也可作为毕设项目、课程设计、大作业、项目初期立项演示等。 3、如果基础还行,也可在此代码基础上进行修改,以实现其他功能,也可用于毕设、课设、作业等。 下载后请首先打开README.txt文件,仅供学习参考, 切勿用于商业用途。
Screenshot_2025-03-31-19-36-01-657_com.UCMobile.jpg
半导体过程控制篇 集成电路的可靠性仿真_03_31_153111.docx
社交应用_鸿蒙OS_API12_高仿微信APP_开发示例_1742847098.zip
资源内项目源码是来自个人的毕业设计,代码都测试ok,包含源码、数据集、可视化页面和部署说明,可产生核心指标曲线图、混淆矩阵、F1分数曲线、精确率-召回率曲线、验证集预测结果、标签分布图。都是运行成功后才上传资源,毕设答辩评审绝对信服的保底85分以上,放心下载使用,拿来就能用。包含源码、数据集、可视化页面和部署说明一站式服务,拿来就能用的绝对好资源!!! 项目备注 1、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用! 2、本项目适合计算机相关专业(如计科、人工智能、通信工程、自动化、电子信息等)的在校学生、老师或者企业员工下载学习,也适合小白学习进阶,当然也可作为毕设项目、课程设计、大作业、项目初期立项演示等。 3、如果基础还行,也可在此代码基础上进行修改,以实现其他功能,也可用于毕设、课设、作业等。 下载后请首先打开README.txt文件,仅供学习参考, 切勿用于商业用途。
app开发
2024 最新版智慧消防全流程解决方案(含 BIM+IoT 技术应用 + 典型案例分析)
电商_微信小程序_学习项目_电商功能演示_1742849441.zip
jiguang.zip