Ich kann nicht scheinen, die richtige Kombination zu finden, um dies zum Laufen zu bringen. Ich habe DDL vom Oracle QL Entwickler mit der schnellen DDL- und den get_ddl-Funktionen erzeugt sowie mein eigenes SQL geschrieben. Alle funktionieren gut in SQL Plus und SQL Developer, aber ich kann nicht herausfinden, wie man H2 dazu bringt, SQL zu akzeptieren.Probleme beim Erstellen von Tabellen für Oracle auf H2 im Speicher DB
Ich habe verschiedene Variationen ausprobiert, den Namen des Schemas weggelassen usw. Nichts scheint zu funktionieren.
SQL:
CREATE TABLE TEST_SCHEMA.SAVED_SEARCHES(
SEARCHID INT GENERATED ALWAYS AS IDENTITY AUTO_INCREMENT BY 1 START WITH 1 NOT NULL,
NAME VARCHAR2(30) NOT NULL,
USERID VARCHAR2(32 BYTE),
WORKGROUPID VARCHAR2(50 BYTE),
ONECLICK VARCHAR2(1 BYTE) NOT NULL
)
Verbindungseigenschaften:
<Context reloadable="true" crossContext="true">
<Resource
name="jdbc/cts"
auth="Container"
type="javax.sql.DataSource"
removeAbandoned="true"
removeAbandonedTimeout="30"
maxActive="100"
maxIdle="30"
maxWait="10000"
username="test_schema"
password="oracle"
driverClassName="com.test.h2.H2Driver"
url="jdbc:testh2:mem:testdb;MODE=Oracle;DB_CLOSE_DELAY=-1;INIT=CREATE SCHEMA IF NOT EXISTS TEST_SCHEMA\;SET SCHEMA TEST_SCHEMA"
validationQuery="SELECT 1 FROM DUAL"
/>
</Context>
Fehler:
Syntax error in SQL statement: expected "(, NOT, NULL_TO_DEFAULT, SEQUENCE, SELECTIVITY, COMMENT, CONSTRAINT, PRIMARY, UNIQUE, NOT, NULL, CHECK, REFERENCES, ,,)"; SQL statement:
Danke, war nicht klar, H2 hatte es eigene SQL-Syntax, mein Fehler für das Lesen des Dokuments. –
Nachdem ich die DDL so geändert habe, dass sie H2-kompatibel ist, erhalte ich jetzt einen SQL-Fehler für die Tabelle nicht gefunden. Ich habe die DB_CLOSE_DELAY Einstellung festgelegt. Gedanken? –