将'select from dual'作为参数传递给java可调用语句

Posted

技术标签:

【中文标题】将\'select from dual\'作为参数传递给java可调用语句【英文标题】:Passing 'select from dual' as parameter to java callable statement将'select from dual'作为参数传递给java可调用语句 【发布时间】:2015-05-05 09:52:58 【问题描述】:

我正在尝试将 SELECT FROM DUAL 作为参数传递给 java 中的可调用语句,例如:

?=call function1( ?, (select function2(?) from dual), ?)

当我调用这个函数时,我得到了异常:ORA-06550:第 1 行,第 165 列:PLS-00103:在期望以下之一时遇到符号“SELECT”:( - + case mod new not null其他...

当我以?=call function1( ?, ?, ?) 调用函数时,它工作正常,但我需要调用另一个函数作为参数(例如密码加密)。

有没有办法将一个函数作为另一个函数的参数调用?

【问题讨论】:

【参考方案1】:

怎么样

BEGIN function1( ?,function2(?), ?) END;

?=call function1( ?, function2(?), ?)

您无需调用 dual。以防万一,您始终可以使用 PL/SQL 本身。易于使用和维护。

Oracle Docs

Returning data from anonymous PL/SQL block - 包含一些关于 JDBC 中 PL/SQL 使用的有用代码 sn-ps。

【讨论】:

工作了,没想到 :) 非常感谢

以上是关于将'select from dual'作为参数传递给java可调用语句的主要内容,如果未能解决你的问题,请参考以下文章

SELECT 1 FROM DUAL ,未找到要求的 FROM 关键字

在插入多行时,语句“select 1 from dual”的作用是啥?

select XX.nextval from dual

mysql from dual插入实现不插入重复记录

ORA-00904 在 DATE 列上使用“MERGE INTO”和“SELECT FROM dual”时出现“无效标识符”错误

OracleDual表