我想創建一個序列表和一個觸發器序列的表。當我在Oracle Express版本中執行此操作時,我擁有以下SQL語句。哪些內容可以在Oracle Express中使用同一用戶正確運行,我使用JDBC登錄。Oracle 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在這一點上還沒有看到新表。我該如何解決這個問題?我應該創建多個語句對象還是嘗試在每個命令之間進行提交?
TIA
你如何在你的java代碼中包含大寫標識符(例如「TEST_SEQ」)? – nos
我正在使用\「在字符串內部對報價進行編碼 – sproketboy