Java 服务器启动期间,索引处缺少IN或OUT参数::错误?
目前,在我们的一个应用程序中,我们发现以下错误:Java 服务器启动期间,索引处缺少IN或OUT参数::错误?,java,oracle,Java,Oracle,目前,在我们的一个应用程序中,我们发现以下错误: org.springframework.jdbc.UncategorizedSQLException: CallableStatementCallback; uncategorized SQLException for SQL [{call test_pkg.set_user_details(?)}?)}]; SQL state [99999]; error code [17041]; Missing IN or OUT parameter at
org.springframework.jdbc.UncategorizedSQLException: CallableStatementCallback; uncategorized SQLException for SQL [{call test_pkg.set_user_details(?)}?)}]; SQL state [99999]; error code [17041]; Missing IN or OUT parameter at index:: 2; nested exception is java.sql.SQLException: Missing IN or OUT parameter at index:: 2
程序机构:
PROCEDURE set_user_details(ID NUMBER DEFAULT -1)
IS
BEGIN
//
//
END set_user_details;
Java或DB代码中没有问题。同样的代码已经运行了很长时间,并且最近没有任何更改
从Java代码中,我们将单个参数传递给该存储过程。
这是一个间歇性问题。只有当我们重新启动服务器时才会发生这种情况。据我所知,这是因为如果我们在服务器启动期间执行任何事务,
数据库和应用程序可以处于不同的状态,并且这两种状态将不同步。如果我错了,请纠正我
我的问题是,如果它是一个与状态相关的问题,那么为什么它在索引::2中给出缺少IN或OUT参数而不是给出与状态相关的错误\异常?
此外,即使存储的proc只接受一个参数,该异常表示索引2处缺少参数。为什么在索引2处需要参数
目前,我们正在使用Oracle 12c和JdbcTemplate来执行存储过程
谢谢准备好的语句有问题,它是
[{call test_pkg.set_user_details(?)}}]但是肯定应该是[{call test_pkg.set_user_details(?)}]代码>-不知怎的,?)}
部分翻了一番…正如我所说,如果我不重新启动服务器,同样的代码也可以工作。是的,我知道-但是准备好的语句仍然是错误的-可能是服务器的重新启动导致了语句中的差异-我不能这么说。。。