浏览 2854 次
该帖已经被评为新手帖
|
|
---|---|
作者 | 正文 |
发表时间:2007-03-09
比如: try { String sql = "UPDATE tableName T SET T.CODE= ? || SUBSTR(T.CODE,LENGTH(?)+1 ,LENGTH(T.CODE)) WHERE T.CODE LIKE ?"; Class.forName("com.ibm.db2.jcc.DB2Driver"); Connection con = DriverManager.getConnection( "jdbc:db2://192.168.30.211:50000/test", "test", "test"); PreparedStatement stmt = con.prepareStatement(sql); stmt.setString(1,"1"); stmt.setString(2,"123"); stmt.setString(3,"23434535635"); stmt.executeUpdate(); } catch (ClassNotFoundException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); } 这段会出现错误: com.ibm.db2.jcc.c.SqlException: DB2 SQL error: SQLCODE: -418, SQLSTATE: 42610, SQLERRMC: null at com.ibm.db2.jcc.c.cl.e(cl.java:1213) at com.ibm.db2.jcc.c.cl.a(cl.java:931) at com.ibm.db2.jcc.a.bd.g(bd.java:121) at com.ibm.db2.jcc.a.bd.a(bd.java:42) at com.ibm.db2.jcc.a.r.a(r.java:31) at com.ibm.db2.jcc.a.bp.g(bp.java:103) at com.ibm.db2.jcc.c.cl.g(cl.java:915) at com.ibm.db2.jcc.c.cm.J(cm.java:1285) at com.ibm.db2.jcc.c.cm.c(cm.java:1632) at com.ibm.db2.jcc.c.cm.C(cm.java:328) at com.ibm.db2.jcc.c.cm.executeUpdate(cm.java:311) 原因就是用了length(?),后来发现只要是有函数里面带"?"的都是这样.oracle没有这样的问题 我发现这样的问题是因为数据库的移植,本来打算不改程序的,看来是不行了?请问有人也遇到过这样的事情吗?虽然简单,但是问题棘手 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |