Ich bin komplett neu bei Oracle (ich komme aus MySQL und MSSQL) und bin Neuling bei JDBC. Einer meiner Tabellenerstellung Abfragen sieht wie folgt aus:Wie können mehrere Befehle in einer JDBC-SQL-Abfrage in Oracle 10g eingefügt werden?
CREATE TABLE "LISTS"
("ID" NUMBER NOT NULL ENABLE,
"NAME" VARCHAR2(1000) NOT NULL ENABLE,
"DOMAIN_ID" NUMBER NOT NULL ENABLE,
CONSTRAINT "LISTS_PK" PRIMARY KEY ("ID") ENABLE
)
/
CREATE OR REPLACE TRIGGER "BI_LISTS"
before insert on "LISTS"
for each row
begin
select "LISTS_SEQ".nextval into :NEW.ID from dual;
end;
/
ALTER TRIGGER "BI_LISTS" ENABLE
/
Als ich connection.createStatement().execute()
diese Abfrage versuchen, ich java.sql.SQLSyntaxErrorException: ORA-00922: missing or invalid option
bekommen. Wenn ich die Schrägstriche entferne, bekomme ich das gleiche. Wenn ich versuche, sie durch Semikola zu ersetzen, bekomme ich java.sql.SQLSyntaxErrorException: ORA-00911: invalid character
.
Ist es nicht möglich, mehrere Befehle in einer Abfrage in JDBC und/oder Oracle aufzunehmen? Oder fehlt mir einfach eine Art von Syntax, um sie zu trennen?
Es ist nicht so wichtig, dass sie eine Aussage sind (ich sie in drei Saiten aus als Behelfslösung vor der Veröffentlichung getrennt hatte), ich wollte nur sehen, ob ich etwas fehlte und/oder es falsch machen. Vielen Dank! – kobachi
Sie können JDBC mit einer bestimmten Oracles-spezifischen Syntax triggern, aber das JDBC-Objektmodell ist wirklich so konzipiert, dass Befehle auf Anweisungsebene an die Datenbank übergeben werden, da jeder möglicherweise Antworten/Ausnahmen haben könnte. – Xailor
macht Sinn =) Meistens war ich verwirrt, dass die SQL-Datei, die Oracle/Apex selbst ausspuckte, als ungültige Syntax zurückkam, als ich versuchte, es durch Apex oder durch JDBC auszuführen. – kobachi