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()'的字符串吗? –