JDBC - oracle - prepareStatement
Cyril Franko
fc282 na email.cz
Pátek Červen 14 11:14:23 CEST 2002
zdravim
mam nasledujuci kod:
PreparedStatement ps = null;
String sql, rid;
ResultSet rs;
long ret=0;
rid = "343423";
sql = "SELECT count(*) as status FROM cf1 WHERE rid = ?";
System.out.println(sql);
try {
ps = conn.prepareStatement( sql );
ps.setString(1,rid);
rs = ps.executeQuery();
rs.next();
ret = rs.getLong("status");
System.out.println(ret);
} catch (SQLException ex) { // error
throw ex;
}
tento kod zbehne bez problemov
-----------------------------------
problem nastane pri inserte:
PreparedStatement ps = null;
String sql, rid;
ResultSet rs;
long ret=0;
rid = "343423";
sql = "INSERT INTO cf1 (rid) VALUES (?)";
System.out.println(sql);
try {
ps = conn.prepareStatement( sql );
ps.setString(1,rid);
ps.execute();
ps.execute("commit");
} catch (SQLException ex) { // error
throw ex;
}
vyhodi to nasledujucu hlasku:
java.sql.SQLException: ORA-01006: bind variable does not exist
ale zaznam insertne do tabulky.
Server je oracle 8.1.5, jdbc driver 9.0.2 ( vyskusal som aj 8.1.7 s rovnakym
vysledkom), kompilujem to pod jdk 1.4
poradi niekto kde je problem s prepareStatement ? teda pri selecte je to OK,
problem je iba pri INSERTe do db.
s pozdrvom
Cyril Franko
Další informace o konferenci Databases