Вызов хранимой процедуры с передачей аргумента типа таблицы
Я создал эту хранимую процедуру в базе данных 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 ответ
Решение
Введенный в таблицу входной параметр не может быть создан за пределами SAP HANA. Для клиентских приложений один из способов по-прежнему использовать типизированные таблицей параметры - это использовать временные таблицы, которые имеют ту же структуру, что и таблица параметров.
Затем ваше JAVA-приложение сначала заполняет временную таблицу и вызывает процедуру на втором этапе.
String storedProcedure = "{call UPDATE_GSTR("<temp_table_name>",?)}";