0
SampleSQL.sql如何使用java在informix中創建臨時表?
CREATE TEMP TABLE_TMP(column1, column2, column3)with NO LOG;
我下面的代碼沒有創建臨時表,但是當我在Informix服務器執行上述SQL也沒有問題創建表。
Class.forName("com.informix.jdbc.IfxDriver");
conn = DriverManager.getConnection(url);
//Informix temp table creation
BufferedReader tempScriptReader = new BufferedReader(new FileReader("SampleSQL.sql"));
String str;
StringBuffer tempTableQry = new StringBuffer();
while ((str = tempScriptReader.readLine()) != null) {
tempTableQry.append(str + "\n ");
}
tempScriptReader.close();
stmt = conn.createStatement();
//prepStatement = conn.prepareStatement(tempTableQry.toString());
System.out.println(tempTableQry.toString());
stmt.executeUpdate(tempTableQry.toString());
如何'stmt.executeUpdate()'報告錯誤?你有沒有看過它報告的錯誤?爲什麼'executeUpdate()'?沒有一個簡單的'executeImmediate()'?您顯示的文件中的SQL究竟是什麼?如果是這樣,你錯過了列的類型信息。 –
嗨喬納森,謝謝你的迴應。 stmt.executeUpdate()不會給出任何錯誤。但是當我嘗試將值插入臨時表(此處爲TABLE_TMP)時,系統會拋出一個錯誤,指出「指定的表不在數據庫中」。看來executeUpdate不會創建臨時表。任何對此的幫助表示讚賞。 – DBest
不知道 - 我寫了足夠少的Java,沒有使用JDBC的代碼。本教程是否在JDBC中使用['executeQuery()'vs'executeUpdate()'vs execute()'](http://javaconceptoftheday.com/difference-between-executequery-executeupdate-execute-in-jdbc /)的幫助呢? AFAICT,你應該沒問題。你打印出你傳遞給'executeUpdate()'的字符串嗎? –