Обзор H SQL Параметр IN типа TIMESTAMP не работает должным образом для хранимой процедуры H SQL.
С учетом следующего DDL:
CREATE TABLE TS_STORE (
ID_COL VARCHAR(20) NOT NULL PRIMARY KEY,
TS TIMESTAMP
);
Оператор DML, такой как:
INSERT INTO TS_STORE (ID_COL, TS) VALUES ('key1', '2020-02-19 12:17:53');
, успешно вставит строку.
Затем, когда я пытаюсь создать хранимую процедуру, выполните следующие действия:
CREATE PROCEDURE TEST_PROC(IN IN_KEY VARCHAR(20), IN IN_TS TIMESTAMP)
MODIFIES SQL DATA
BEGIN ATOMIC
INSERT INTO TS_STORE(ID_COL, TS)
VALUES (IN_KEY, IN_TS);
END;
и попытка вызвать его как:
CALL TEST_PROC('key2', '2020-02-19 12:17:53');
Затем я получаю сообщение об ошибке: «несовместимый тип данных при преобразовании».
Это проблема для меня, так как я не разрешается изменять сигнатуру хранимой процедуры, чтобы обойти проблему, поскольку в моем случае H SQL используется в качестве макета для производственной базы данных (DB2), где эквивалентная процедура работает, как ожидалось.