我似乎無法弄清楚正確的組合以使其工作。我使用Quick DDL和get_ddl函數從Oracle QL開發人員生成了DDL,並編寫了自己的SQL。所有在SQL Plus和SQL Developer中工作正常,但我無法弄清楚如何讓H2接受SQL。在內存數據庫中爲H2在Oracle上創建表的問題
我試過不同的變化,放棄架構名稱等等。似乎沒有任何工作。
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
)
連接屬性:
<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>
錯誤:
Syntax error in SQL statement: expected "(, NOT, NULL_TO_DEFAULT, SEQUENCE, SELECTIVITY, COMMENT, CONSTRAINT, PRIMARY, UNIQUE, NOT, NULL, CHECK, REFERENCES, ,,)"; SQL statement:
感謝,並沒有意識到H2有它的自己的SQL語法,我沒有閱讀文檔的錯誤。 –
將DDL修改爲符合H2後,我現在得到一個表未找到SQL錯誤。我有DB_CLOSE_DELAY設置集。思考? –