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

Passing 'select from dual' as parameter to java callable statement

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

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

当我调用此函数时出现异常:ORA-06550:第 1 行,第 165 列:PLS-00103:遇到以下符号之一时遇到符号 "SELECT":( - + case mod new not null others...

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

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

怎么样

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

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

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

Oracle Docs

Returning data from anonymous PL/SQL block - 包含一些关于 PL/SQL 在 JDBC 中用法的有用代码片段。