java - 带有 SimpleJdbcCall 调用函数的 PLS-00306
问题描述
我有下一个功能:
create or replace PACKAGE BODY "CATALOG_NAME" IS
FUNCTION FUNCTION_NAME (Param1 Varchar2, Param2 Varchar2, Param3 Number) Return Number;
END;
我正在尝试从 Java 中调用它:
JdbcTemplate template = new JdbcTemplate(this.datasource);
SimpleJdbcCall simpleJdbcCall = new SimpleJdbcCall(template)
.withSchemaName("SCHEMA_NAME")
.withCatalogName("CATALOG_NAME")
.withFunctionName("FUNCTION_NAME");
MapSqlParameterSource params = new MapSqlParameterSource();
params.addValue("Param1", "value1");
params.addValue("Param2", "value2");
params.addValue("Param3", Integer.valueOf(0));
return simpleJdbcCall.executeFunction(Integer.class, params);
这是启动异常:
org.springframework.jdbc.BadSqlGrammarException: CallableStatementCallback; bad SQL grammar [{? = call SCHEMA_NAME.CATALOG_NAME.FUNCTION_NAME(?, ?)}]; nested exception is java.sql.SQLException: PLS-
00306: wrong number or types of arguments in call to 'FUNCTION_NAME'
ORA-06550: line 1, column 7:
PL/SQL: Statement ignored
我注意到的第一件事是正在启动的查询有 2 个输入参数,而不是 3 个。我做错了什么?
解决方案
推荐阅读
- linux - 是否可以记录整个脚本?
- google-app-engine - 使用自定义运行时修改 Google Cloud App Engine 柔性环境上的 Nginx 配置
- u-sql - U-sql ocrextractor 不工作
- c# - 我可以使用适配器设计模式来简化接口列表吗?
- python - Pandas - 根据百分比获取前 n 行
- wordpress-theming - 使用 Timber 时推荐使用的文件夹和文件结构是什么?
- google-maps - 保护 Google Maps API 密钥
- perl - 在 Intellij 和 Perl 插件中找不到包文件警告
- reactjs - Aws Mobile Hub:将前端与后端分开
- javascript - overflow-x 滚动属性适用于桌面,但不适用于手机