मैं निम्नलिखित SQL स्क्रिप्ट (initDB.sql)लाइन निरंतरता स्प्रिंग एसक्यूएल ScriptUtils (एच 2 का उपयोग करना)
CREATE TABLE FFShareHistorical ( ID int NOT NULL AUTO_INCREMENT,
PX_LAST Double DEFAULT NULL,
PX_OPEN Double DEFAULT NULL,
PX_HIGH Double DEFAULT NULL,
PX_LOW Double DEFAULT NULL,
PRIMARY KEY (ID))
और, स्प्रिंग के ScriptUtils (4.1.4.RELEASE) का उपयोग कर इसे निष्पादित करने के लिए चाहते हैं यानी
Resource rc = new ClassPathResource("initDB.sql");
ScriptUtils.executeSqlScript(dataSource.getConnection(), rc);
समस्या यह है कि ऐसा लगता है कि पंक्ति विराम SQL विवरण की समाप्ति के रूप में व्याख्या कर रहे हैं, यानी त्रुटि स्टैक ट्रेस इस
org.springframework.jdbc.datasource.init.ScriptStatementFailedException: Failed to execute SQL script statement at line 1 of resource class path resource [initDB.sql]: CREATE TABLE FFShareHistorical (ID int NOT NULL AUTO_INCREMENT, ; nested exception is org.h2.jdbc.JdbcSQLException: Syntax error in SQL statement "CREATE TABLE FFSHAREHISTORICAL (ID INT NOT NULL AUTO_INCREMENT, "; expected "identifier"; SQL statement:
CREATE TABLE FFShareHistorical (ID int NOT NULL AUTO_INCREMENT, [42001-176]
at org.h2.message.DbException.getJdbcSQLException(DbException.java:344)
at org.h2.message.DbException.getSyntaxError(DbException.java:204)
at org.h2.command.Parser.readColumnIdentifier(Parser.java:3068)
at org.h2.command.Parser.parseCreateTable(Parser.java:5722)
at org.h2.command.Parser.parseCreate(Parser.java:4122)
at org.h2.command.Parser.parsePrepared(Parser.java:351)
at org.h2.command.Parser.parse(Parser.java:306)
at org.h2.command.Parser.parse(Parser.java:278)
at org.h2.command.Parser.prepareCommand(Parser.java:243)
at org.h2.engine.Session.prepareLocal(Session.java:442)
at org.h2.server.TcpServerThread.process(TcpServerThread.java:265)
at org.h2.server.TcpServerThread.run(TcpServerThread.java:160)
at java.lang.Thread.run(Unknown Source)
at org.springframework.jdbc.datasource.init.ScriptUtils.executeSqlScript(ScriptUtils.java:475)
at org.springframework.jdbc.datasource.init.ScriptUtils.executeSqlScript(ScriptUtils.java:393)
at org.springframework.jdbc.datasource.init.ScriptUtils.executeSqlScript(ScriptUtils.java:372)
at ch.qpmlib.flatfiledatabase.jdbc.dao.FFDBSetup.setupDB(FFDBSetup.java:26)
at ch.qpmlib.flatfiledatabase.jdbc.main.SpringMain.setupDB(SpringMain.java:30)
at ch.qpmlib.flatfiledatabase.jdbc.main.SpringMain.main(SpringMain.java:17)
Caused by: org.h2.jdbc.JdbcSQLException: Syntax error in SQL statement "CREATE TABLE FFSHAREHISTORICAL (ID INT NOT NULL AUTO_INCREMENT, "; expected "identifier"; SQL statement:
CREATE TABLE FFShareHistorical (ID int NOT NULL AUTO_INCREMENT, [42001-176]
at org.h2.message.DbException.getJdbcSQLException(DbException.java:344)
at org.h2.message.DbException.getSyntaxError(DbException.java:204)
at org.h2.command.Parser.readColumnIdentifier(Parser.java:3068)
at org.h2.command.Parser.parseCreateTable(Parser.java:5722)
at org.h2.command.Parser.parseCreate(Parser.java:4122)
at org.h2.command.Parser.parsePrepared(Parser.java:351)
at org.h2.command.Parser.parse(Parser.java:306)
at org.h2.command.Parser.parse(Parser.java:278)
at org.h2.command.Parser.prepareCommand(Parser.java:243)
at org.h2.engine.Session.prepareLocal(Session.java:442)
at org.h2.server.TcpServerThread.process(TcpServerThread.java:265)
at org.h2.server.TcpServerThread.run(TcpServerThread.java:160)
at java.lang.Thread.run(Unknown Source)
की तरह लग रहा है
तो सवाल यह है कि मैं एक बहुभाषी एसक्यूएल स्क्रिप्ट के साथ ScriptUtils का उपयोग कैसे कर सकता हूं? विशेष रूप से मैं किसी प्रकार की "लाइन निरंतरता" चरित्र की तलाश कर रहा हूं जिसे मैं स्क्रिप्ट में जोड़ सकता हूं या स्प्रिंग्स स्क्रिप्ट को सभी नए अक्षरों को हटाने के लिए कह सकता हूं।
वसंत किस संस्करण का उपयोग कर रहे हैं? .. –
मैं 4.1.4 का उपयोग कर रहा हूँ। रिलीज –