Hallo zusammen,
ich möchte gerne meine .sql file mit einem Java Programm in einer oracle DB ausführen.
Mein Java Code sieht so aus:
das Probelm ist aber dass mein .sql file sqlplus command wie SET DEFINE OFF; hat,
und wenn ich mein Code ausführe dann bekomme ich folgende Fehlermeldung:
Kann mir einer einen Tipp geben, wie ich das lösen kann, bzw. wie ich in meinem Pjava rogramm sqlplus commands ausführen kann?
Danke
ich möchte gerne meine .sql file mit einem Java Programm in einer oracle DB ausführen.
Mein Java Code sieht so aus:
Code:
import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.sql.Statement;
public class DBScriptRunner {
public static void main(String[] args) {
try {
String pathname = args[0];
System.out.println("path name: " +pathname);
executeScript(pathname);
} catch (IOException e) {
e.printStackTrace();
} catch (SQLException e) {
e.printStackTrace();
}
}
static void executeScript(String scriptFilePath) throws IOException, SQLException {
// initialize script path
// String scriptFilePath = "e:/script.sql";
BufferedReader reader = null;
Connection con = null;
Statement statement = null;
try {
// load driver class for mysql
Class.forName("oracle.jdbc.driver.OracleDriver");
// create connection
con = DriverManager.getConnection("jdbc:oracle:thin:@//host-name:1521/romdb", "user",
"pwd");
statement = con.createStatement();
// initialize file reader
reader = new BufferedReader(new FileReader(scriptFilePath));
String line = null;
// read script line by line
while ((line = reader.readLine()) != null) {
// execute query
if (line.startsWith("--")|| line.isEmpty()) {
System.out.println("comment line or empty line: " + line);
} else {
System.out.println("Line: " + line);
statement.execute(line);
}
}
} catch (Exception e) {
System.out.println("*** Error : "+e.toString());
System.out.println("*** ");
System.out.println("*** Error : ");
e.printStackTrace();
} finally {
// close file reader
if (reader != null) {
reader.close();
}
// close db connection
if (con != null) {
con.close();
}
}
}
}
das Probelm ist aber dass mein .sql file sqlplus command wie SET DEFINE OFF; hat,
und wenn ich mein Code ausführe dann bekomme ich folgende Fehlermeldung:
Code:
java.sql.SQLSyntaxErrorException: ORA-00922: missing or invalid option
at oracle.jdbc.driver.T4CTTIoer11.processError(T4CTTIoer11.java:494)
at oracle.jdbc.driver.T4CTTIoer11.processError(T4CTTIoer11.java:446)
at oracle.jdbc.driver.T4C8Oall.processError(T4C8Oall.java:1052)
at oracle.jdbc.driver.T4CTTIfun.receive(T4CTTIfun.java:537)
at oracle.jdbc.driver.T4CTTIfun.doRPC(T4CTTIfun.java:255)
at oracle.jdbc.driver.T4C8Oall.doOALL(T4C8Oall.java:610)
at oracle.jdbc.driver.T4CStatement.doOall8(T4CStatement.java:213)
at oracle.jdbc.driver.T4CStatement.doOall8(T4CStatement.java:37)
at oracle.jdbc.driver.T4CStatement.executeForRows(T4CStatement.java:887)
at oracle.jdbc.driver.OracleStatement.doExecuteWithTimeout(OracleStatement.java:1136)
at oracle.jdbc.driver.OracleStatement.executeInternal(OracleStatement.java:1754)
at oracle.jdbc.driver.OracleStatement.execute(OracleStatement.java:1709)
at oracle.jdbc.driver.OracleStatementWrapper.execute(OracleStatementWrapper.java:300)
at connector.DBScriptRunner.executeScript(DBScriptRunner.java:47)
at connector.DBScriptRunner.main(DBScriptRunner.java:16)
Caused by: Error : 922, Position : 4, Sql = SET DEFINE OFF;, OriginalSql = SET DEFINE OFF;, Error Msg = ORA-00922: missing or invalid option
Kann mir einer einen Tipp geben, wie ich das lösen kann, bzw. wie ich in meinem Pjava rogramm sqlplus commands ausführen kann?
Danke