Я пытаюсь создать таблицу с последовательностью и триггером для этой последовательности. Когда я делаю это в издании Oracle Express, у меня появляются следующие операторы SQL. Которые ДОЛЖНЫ работать правильно в Oracle Express, используя того же пользователя, которого я использую в JDBC.
CREATE table "TEST" (
"ID" NUMBER(10) NOT NULL,
"NAME" VARCHAR2(20),
constraint "TEST_PK" primary key ("ID")
)
CREATE sequence "TEST_SEQ"
CREATE trigger "BI_TEST"
before insert on "TEST"
for each row
begin
if :NEW."ID" is null then
select "TEST_SEQ".nextval into :NEW."ID" from dual;
end if;
end;
Итак, теперь я помещаю каждое из них в список строк и выполняю 1 по одному так:
List<String> commands = new ArrayList<String>(4);
commands.add("Create table ...");
commands.add("Create sequence ...");
commands.add("Create trigger...");
st = con.createStatement();
for (String command : commands) {
st.execute(command);
}
и т.д ...
Но я получаю ошибку с оператором триггера.
«Ошибка с командой Oracle: ORA-00942: таблица или представление не существует»
Мне кажется, что Oracle еще не видел новую таблицу на данный момент. Как я могу это исправить? Стоит ли создавать несколько объектов операторов или пытаться совершать промежуточные действия между каждой командой?
ТИА