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

Call stored procedure passing table type argument

我在 HANA 数据库中创建了这个存储过程,它有两个参数,一个是 table 类型,另一个是 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();

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

无法在 SAP HANA 外部创建 table 类型的输入参数。 对于客户端应用程序,仍然使用 table 类型参数的一种方法是使用具有与参数 table.

相同结构的临时 tables

您的 JAVA 应用程序将首先填充临时 table 并在第二步调用该过程

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