Я хотел бы спросить, что это за ошибка и как ее исправить?
SAP DBTech JDB C: [7]: функция не поддерживается: выполнение триггера с переменной перехода равно не поддерживается при записи по кусочкам.
Ситуация:
Чтение из файла размером более 100 КБ. Затем вставьте в базу данных SAP HANA. Вставляемый столбец имеет тип BLOB. В этой таблице есть триггер, который вставит ту же информацию в другую таблицу (для целей отслеживания).
Если без этого триггера он может вставить данные без ошибок.
Я не могу дать Фактический код из-за конфиденциальности. Поэтому я создаю приведенный ниже пример.
Я создаю файл hdbtrigger и компилирую его с помощью модуля базы данных SAP HANA в SAP Web IDE для создания таблицы, триггера и т. Д. c.
TRIGGER "M_IMG_T_T"
AFTER INSERT OR UPDATE OR DELETE
ON "M_IMG_T"
REFERENCING NEW ROW new_row, OLD ROW old_row
FOR EACH ROW
BEGIN
DECLARE upd_kbn VARCHAR(1) := 'U';
IF :new_row."ID_PK" IS NULL THEN
upd_kbn = 'D';
ELSEIF :old_row."ID_PK" IS NULL THEN
upd_kbn = 'I';
END IF;
IF :upd_kbn = 'I' OR :upd_kbn = 'U' THEN
INSERT INTO "M_IMG_T_H" VALUES(
:new_row."ID_PK",
:new_row."I_IMG_FILE_DATA"
);
ELSE
INSERT INTO "M_IMG_T_H" VALUES(
:new_row."ID_PK",
:new_row."I_IMG_FILE_DATA"
);
END IF;
END
Когда я экспортирую каталог таблицы, я получу это. (Я просто копирую часть вставки)
CREATE TRIGGER "M_IMG_T_T_I" AFTER INSERT ON "M_IMG_T" REFERENCING NEW ROW NEW_ROW FOR EACH ROW
BEGIN
DECLARE UPD_CLS VARCHAR(2) := 'I';
INSERT INTO "M_IMG_T_H" (
"I_ID",
"I_IMG_FILE_DATA"
) VALUES(
:NEW_ROW."I_ID",
:NEW_ROW."I_IMG_FILE_DATA"
);
END