当前位置: 首页 > 知识库问答 >
问题:

调用传递表类型参数的存储过程

端木志诚
2023-03-14

我在HANA数据库中创建了这个存储过程,它使用两个参数,一个是表类型,另一个是varchar

CREATE PROCEDURE UPDATE_GSTR(IN p_Input_Values "GSTR11".p_Input_Values , IN p_TRANS_ID VARCHAR(100))

现在我想在Java中调用这个过程,我写了这样的东西。

Connection dbConnection = null;
CallableStatement callableStatement = null;

String storedProcedure = "{call UPDATE_GSTR(?,?)}";

dbConnection = jdbc.getDataSource().getConnection();
callableStatement = dbConnection.prepareCall(storedProcedure);

callableStatement.setString(1, "");
callableStatement.setString(2, "");

// execute store procedure
callableStatement.executeUpdate();

有人能告诉我在调用此存储过程时,如何将对象作为参数中的表实体传递吗?

共有1个答案

澹台镜
2023-03-14

无法在SAP HANA之外创建表类型的输入参数。对于客户端应用程序,仍然使用表类型参数的一种方法是使用与参数表具有相同结构的临时表。

然后,您的JAVA应用程序将首先填充临时表,并在第二步中调用该过程

String storedProcedure = "{call UPDATE_GSTR("<temp_table_name>",?)}";
 类似资料:
  • 问题内容: 我有大约六种通用但相当复杂的存储过程和函数,我想以一种更通用的方式使用它们。 理想情况下,我希望能够将表名作为参数传递给过程,因为当前它是硬编码的。 我所做的研究表明,我需要将过程中所有现有的SQL转换为使用动态SQL,以便从参数中拼接动态表名称,但是我想知道是否还有一种更简便的方法可以通过另一种方式引用该表? 例如: 如果是这样,如何从表名设置@MyTable变量? 我正在使用SQL

  • 本文向大家介绍Mybatis调用PostgreSQL存储过程实现数组入参传递,包括了Mybatis调用PostgreSQL存储过程实现数组入参传递的使用技巧和注意事项,需要的朋友参考一下 前言 项目中用到了Mybatis调用PostgreSQL存储过程(自定义函数)相关操作,由于PostgreSQL自带数组类型,所以有一个自定义函数的入参就是一个int数组,形如: 如上所示,参数是一个int数组,

  • 问题内容: 我在形成文字时可能做错了。假设我有一个简单的存储过程,如下所示: 的定义为: 执行这样的查询: 产生以下结果集: 代替: 我的文字是否有问题,还是应该以其他方式访问该字段?感谢您的任何建议。 问题答案: 指定输入的方式看起来不错,因为使用行和数组构造器语法可以观察到相同的行为: 和: 产生: 如果添加: 在循环内部,输出为: 表明您实际上正在获取一个元组,其中“ message”是您期

  • 在我的应用程序中,我想执行像SELECT*FROM tbl这样的查询,其中,@list中的col In(@list)可以有变量no of值。我正在使用MS SQL server数据库。当我搜索这个问题时,我找到了这个链接 http://www.sommarskog.se/arrays-in-sql-2008.html 此链接表示使用表值参数。因此,我使用Microsoft SQL Server M

  • 如何设置参数< code>@p_ItemShelfList [file]。[udtt _ ItemShelfPair]READONLY 与 当我尝试时,我得到一个 操作数类型冲突:nvarchar与udtt_ItemShelfPair不兼容 连接类