Обзор Параметр HSQL IN типа TIMESTAMP не работает должным образом для хранимой процедуры HSQL.
Учитывая следующий 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');
Затем я получаю сообщение об ошибке: «несовместимый тип данных при преобразовании».
Это проблема для меня, так как мне не разрешено изменять подпись хранимой процедуры, чтобы обойти проблему, поскольку в моем случае HSQL используется в качестве макета для производственной базы данных (DB2), где эквивалентная процедура работает должным образом .