Hana 参数化存储过程问题简单 jdbc 模板
Posted
技术标签:
【中文标题】Hana 参数化存储过程问题简单 jdbc 模板【英文标题】:Hana Parameterised stored proc issue simple jdbc template 【发布时间】:2016-12-25 06:18:13 【问题描述】:看起来 jdbc 模板在调用存储过程时没有将参数传递给 hana db。 根据我们的分析,spring jdbc 实现不会从元数据中识别过程参数。 .我们使用标准代码调用proc。
simpleJdbcCall = new SimpleJdbcCall(datasource).withSchemaName(getSchemaString())
.withProcedureName(name);
results = simpleJdbcCall.execute(params);
我们尝试搜索网络但找不到令人满意的解决方案 我也试过设置参数明确
simpleJdbcCall = new SimpleJdbcCall(datasource).withSchemaName(getSchemaString())
.withProcedureName(name);
SqlParameterSource in = new MapSqlParameterSource().addValues(params);
results = simpleJdbcCall.execute(in);
这里的参数是哈希图。 问题依旧
【问题讨论】:
我也尝试过明确添加参数。错过了在较早的帖子中添加。更新的问题。 我想我明白了..你能在答案中添加相同的内容 【参考方案1】:来自javadoc(重点是我的):
元数据处理基于JDBC驱动提供的DatabaseMetaData。由于我们依赖 JDBC 驱动程序,因此这种“自动检测”只能用于已知可提供准确元数据的数据库。目前包括 Derby、mysql、Microsoft SQL Server、Oracle、DB2、Sybase 和 PostgreSQL。 对于任何其他数据库,您需要明确声明所有参数。
我会说你需要使用SimpleJdbcCall#declareParameters(SqlParameter...)
【讨论】:
很高兴 ;-)以上是关于Hana 参数化存储过程问题简单 jdbc 模板的主要内容,如果未能解决你的问题,请参考以下文章
通过带有参数的 JDBC 从 SAP HANA 数据库中选择
使用简单的 jdbc 调用将数组作为输入参数传递给 oracle 存储过程