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 Test