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 存储过程

使用 jdbctemplate / jdbc for Hana db 获取序列生成的主键

存储过程将多个表返回到spring jdbc模板

什么是mybatis框架

JDBC 参数化的方法