В настоящее время я настраиваю тестовую среду для приложения. Я использую jUnit и Spring в моей тестовой среде. Перед выполнением теста я хочу настроить состояние тестовой среды базы данных. Я уже написал сценарии SQL (схема и данные), и они прекрасно работают в OracleDeveloper. Когда я попытался выполнить их с помощью драйвера jdbc oracle thin, выполнение завершилось неудачно. Похоже, что тонкий драйвер не любит создавать операторы триггера.
Я прочитал, что мне нужно использовать драйвер oci вместо тонкого драйвера. Проблема с драйвером oci заключается в том, что он не зависит от платформы, и для его установки требуется время.
Пример моего кода:
<code>CREATE TABLE "USER"
(
USER_ID NUMBER(10) NOT NULL,
CREATOR_USER_FK NUMBER(10) NOT NULL,
...
PRIMARY KEY (USER_ID)
);
CREATE SEQUENCE SEQ_USER START WITH 1 INCREMENT BY 1;
CREATE TRIGGER "USER_ID_SEQ_INC" BEFORE
INSERT ON "USER" FOR EACH ROW BEGIN
SELECT SEQ_USER.nextval
INTO :new.USER_ID
FROM DUAL;
END;
Если я выполняю оператор триггера, выполнение завершается неудачно, но, похоже, первая часть запроса (CREATE TRIGGER "USER_ID_SEQ_INC" ... "USER" ... BEGIN ... FROM DUAL;) выполнена успешно, но триггер, кажется, поврежден, если я пытаюсь его использовать. Ошибка сбоя выполнения сопровождается второй частью инструкции END; «ORA-00900: недопустимый оператор SQL».
Кто-нибудь знает решение этой проблемы? Я просто хочу создать триггер с независимым от платформы тонким драйвером jdbc.
Ура! * * 1013
Кевин