java.sql.BatchUpdateException: [IBM][CLI Driver][DB2/NT] SQL0100W No row was found for FETCH, UPDATE or DELETE; or the result of a query is an empty table. SQLSTATE=02000

Hibernate JIRA | mjjuang | 1 decade ago
tip
Your exception is missing from the Samebug knowledge base.
Here are the best solutions we found on the Internet.
Click on the to mark the helpful solution and get rewards for you help.
  1. 0

    I got two tables, course and student. Besides, there is a cross table, courseXstudent, which keeps the relationship between them. With the property "hibernate.jdbc.batch_size" is set greater than 0, an exception will be thrown when I delete an student, who has no course information in the cross table. However, everything is ok when "hibernate.jdbc.batch_size" is set to be 0. I don't know if the batch update or the db2 jdbc driver causes the exception. Please help, thanks. [DDL & data] create table course ( id integer not null generated by default as identity (start with +1), cname varchar(20), primary key (id) ); create table student ( id integer not null generated by default as identity (start with +1), sname varchar(20), did integer not null, primary key (id), foreign key (did) references department(id) on delete restrict ); create table cXs ( id integer not null generated by default as identity (start with +1), sid integer not null, cid integer not null, primary key (id), foreign key (sid) references student(id) on delete cascade, foreign key (cid) references course(id) on delete cascade, unique (sid, cid) ); insert into course values (1, 'Math'), (2, 'English'), (3, 'Science'), (4, 'Chinese'); insert into student values (1, 'John', 1), (2, 'Mary', 2), (3, 'Tom', 1), (4, 'Sara', 2), (5, 'Alan', 1), (6, 'Molly', 2); insert into cXs values (1, 1, 1), (2, 1, 2), (3, 1, 3), (4, 2, 1); [hbm file: course.hbm.xml] <?xml version="1.0"?> <!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 2.0//EN" "http://hibernate.sourceforge.net/hibernate-mapping-2.0.dtd" > <hibernate-mapping> <class name="Course" table="course" lazy="true"> <id name="id" type="java.lang.Integer" column="ID"> <generator class="identity" /> </id> <property name="name" type="java.lang.String" column="cNAME" /> <bag name="students" table="cxs" lazy="true" cascade="save-update" inverse="true"> <key column="cid" /> <many-to-many column="sid" class="Student" outer-join="true" /> </bag> </class> </hibernate-mapping> [hbm file: student.hbm.xml] <?xml version="1.0"?> <!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 2.0//EN" "http://hibernate.sourceforge.net/hibernate-mapping-2.0.dtd" > <hibernate-mapping> <class name="Student" table="student" lazy="true"> <id name="id" type="java.lang.Integer" column="ID"> <generator class="identity" /> </id> <property name="name" type="java.lang.String" column="sNAME" /> <bag name="courses" table="cxs" lazy="true" cascade="none" inverse="false"> <key column="sid" /> <many-to-many column="cid" class="Course" outer-join="true" /> </bag> </class> </hibernate-mapping> [java file: course.java] public class Course { private Integer id; private String name; private List students; public Integer getId() { return id; } public String getName() { return name; } public void setId(Integer integer) { id = integer; } public void setName(String string) { name = string; } public List getStudents() { return students; } public void setStudents(List set) { students = set; } } [java file: student.java] public class Student { private Integer id; private String name; private List courses; public Integer getId() { return id; } public void setId(Integer integer) { id = integer; } public String getName() { return name; } public void setName(String string) { name = string; } public List getCourses() { return courses; } public void setCourses(List list) { courses = list; } } [main program] public class Run { public static void main(String[] args) throws HibernateException { SessionFactory sessionFactory = new Configuration().configure().buildSessionFactory(); Session sess = sessionFactory.openSession(); Transaction trx = sess.beginTransaction(); Student s = (Student)sess.get(Student.class, new Integer(5)); sess.delete(s); trx.commit(); session.close(); } } [Exception thrown] java.sql.BatchUpdateException: [IBM][CLI Driver][DB2/NT] SQL0100W No row was found for FETCH, UPDATE or DELETE; or the result of a query is an empty table. SQLSTATE=02000 at COM.ibm.db2.jdbc.app.SQLExceptionGenerator.throw_SQLException(Unknown Source) at COM.ibm.db2.jdbc.app.SQLExceptionGenerator.check_batch_return_code(Unknown Source) at COM.ibm.db2.jdbc.app.DB2PreparedStatement.executeBatch(Unknown Source) at com.mchange.v2.sql.filter.FilterPreparedStatement.executeBatch(FilterPreparedStatement.java:260) at net.sf.hibernate.impl.BatchingBatcher.doExecuteBatch(BatchingBatcher.java:54) at net.sf.hibernate.impl.BatcherImpl.executeBatch(BatcherImpl.java:126) at net.sf.hibernate.impl.SessionImpl.executeAll(SessionImpl.java:2421) at net.sf.hibernate.impl.SessionImpl.execute(SessionImpl.java:2373) at net.sf.hibernate.impl.SessionImpl.flush(SessionImpl.java:2240) at net.sf.hibernate.transaction.JDBCTransaction.commit(JDBCTransaction.java:61) at Run.main(Run.java:36) 14:11:23,375 WARN JDBCExceptionReporter:38 - SQL Error: 100, SQLState: 02000

    Hibernate JIRA | 1 decade ago | mjjuang
    java.sql.BatchUpdateException: [IBM][CLI Driver][DB2/NT] SQL0100W No row was found for FETCH, UPDATE or DELETE; or the result of a query is an empty table. SQLSTATE=02000
  2. 0

    I got two tables, course and student. Besides, there is a cross table, courseXstudent, which keeps the relationship between them. With the property "hibernate.jdbc.batch_size" is set greater than 0, an exception will be thrown when I delete an student, who has no course information in the cross table. However, everything is ok when "hibernate.jdbc.batch_size" is set to be 0. I don't know if the batch update or the db2 jdbc driver causes the exception. Please help, thanks. [DDL & data] create table course ( id integer not null generated by default as identity (start with +1), cname varchar(20), primary key (id) ); create table student ( id integer not null generated by default as identity (start with +1), sname varchar(20), did integer not null, primary key (id), foreign key (did) references department(id) on delete restrict ); create table cXs ( id integer not null generated by default as identity (start with +1), sid integer not null, cid integer not null, primary key (id), foreign key (sid) references student(id) on delete cascade, foreign key (cid) references course(id) on delete cascade, unique (sid, cid) ); insert into course values (1, 'Math'), (2, 'English'), (3, 'Science'), (4, 'Chinese'); insert into student values (1, 'John', 1), (2, 'Mary', 2), (3, 'Tom', 1), (4, 'Sara', 2), (5, 'Alan', 1), (6, 'Molly', 2); insert into cXs values (1, 1, 1), (2, 1, 2), (3, 1, 3), (4, 2, 1); [hbm file: course.hbm.xml] <?xml version="1.0"?> <!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 2.0//EN" "http://hibernate.sourceforge.net/hibernate-mapping-2.0.dtd" > <hibernate-mapping> <class name="Course" table="course" lazy="true"> <id name="id" type="java.lang.Integer" column="ID"> <generator class="identity" /> </id> <property name="name" type="java.lang.String" column="cNAME" /> <bag name="students" table="cxs" lazy="true" cascade="save-update" inverse="true"> <key column="cid" /> <many-to-many column="sid" class="Student" outer-join="true" /> </bag> </class> </hibernate-mapping> [hbm file: student.hbm.xml] <?xml version="1.0"?> <!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 2.0//EN" "http://hibernate.sourceforge.net/hibernate-mapping-2.0.dtd" > <hibernate-mapping> <class name="Student" table="student" lazy="true"> <id name="id" type="java.lang.Integer" column="ID"> <generator class="identity" /> </id> <property name="name" type="java.lang.String" column="sNAME" /> <bag name="courses" table="cxs" lazy="true" cascade="none" inverse="false"> <key column="sid" /> <many-to-many column="cid" class="Course" outer-join="true" /> </bag> </class> </hibernate-mapping> [java file: course.java] public class Course { private Integer id; private String name; private List students; public Integer getId() { return id; } public String getName() { return name; } public void setId(Integer integer) { id = integer; } public void setName(String string) { name = string; } public List getStudents() { return students; } public void setStudents(List set) { students = set; } } [java file: student.java] public class Student { private Integer id; private String name; private List courses; public Integer getId() { return id; } public void setId(Integer integer) { id = integer; } public String getName() { return name; } public void setName(String string) { name = string; } public List getCourses() { return courses; } public void setCourses(List list) { courses = list; } } [main program] public class Run { public static void main(String[] args) throws HibernateException { SessionFactory sessionFactory = new Configuration().configure().buildSessionFactory(); Session sess = sessionFactory.openSession(); Transaction trx = sess.beginTransaction(); Student s = (Student)sess.get(Student.class, new Integer(5)); sess.delete(s); trx.commit(); session.close(); } } [Exception thrown] java.sql.BatchUpdateException: [IBM][CLI Driver][DB2/NT] SQL0100W No row was found for FETCH, UPDATE or DELETE; or the result of a query is an empty table. SQLSTATE=02000 at COM.ibm.db2.jdbc.app.SQLExceptionGenerator.throw_SQLException(Unknown Source) at COM.ibm.db2.jdbc.app.SQLExceptionGenerator.check_batch_return_code(Unknown Source) at COM.ibm.db2.jdbc.app.DB2PreparedStatement.executeBatch(Unknown Source) at com.mchange.v2.sql.filter.FilterPreparedStatement.executeBatch(FilterPreparedStatement.java:260) at net.sf.hibernate.impl.BatchingBatcher.doExecuteBatch(BatchingBatcher.java:54) at net.sf.hibernate.impl.BatcherImpl.executeBatch(BatcherImpl.java:126) at net.sf.hibernate.impl.SessionImpl.executeAll(SessionImpl.java:2421) at net.sf.hibernate.impl.SessionImpl.execute(SessionImpl.java:2373) at net.sf.hibernate.impl.SessionImpl.flush(SessionImpl.java:2240) at net.sf.hibernate.transaction.JDBCTransaction.commit(JDBCTransaction.java:61) at Run.main(Run.java:36) 14:11:23,375 WARN JDBCExceptionReporter:38 - SQL Error: 100, SQLState: 02000

    Hibernate JIRA | 1 decade ago | mjjuang
    java.sql.BatchUpdateException: [IBM][CLI Driver][DB2/NT] SQL0100W No row was found for FETCH, UPDATE or DELETE; or the result of a query is an empty table. SQLSTATE=02000
  3. 0

    problem with excuteBatch return codes from PreparedStatements

    Google Groups | 2 decades ago | Dawn
    java.sql.BatchUpdateException: [IBM][CLI Driver][DB2] SQL0301N The value of a host variable in the EXECUTE or OPEN statement cannot be used because of its data type. SQLSTATE=02000
  4. Speed up your debug routine!

    Automated exception search integrated into your IDE

    Root Cause Analysis

    1. java.sql.BatchUpdateException

      [IBM][CLI Driver][DB2/NT] SQL0100W No row was found for FETCH, UPDATE or DELETE; or the result of a query is an empty table. SQLSTATE=02000

      at COM.ibm.db2.jdbc.app.SQLExceptionGenerator.throw_SQLException()
    2. COM.ibm.db2
      DB2PreparedStatement.executeBatch
      1. COM.ibm.db2.jdbc.app.SQLExceptionGenerator.throw_SQLException(Unknown Source)
      2. COM.ibm.db2.jdbc.app.SQLExceptionGenerator.check_batch_return_code(Unknown Source)
      3. COM.ibm.db2.jdbc.app.DB2PreparedStatement.executeBatch(Unknown Source)
      3 frames
    3. c3p0:JDBC DataSources/Resource Pools
      FilterPreparedStatement.executeBatch
      1. com.mchange.v2.sql.filter.FilterPreparedStatement.executeBatch(FilterPreparedStatement.java:260)
      1 frame
    4. net.sf.hibernate
      JDBCTransaction.commit
      1. net.sf.hibernate.impl.BatchingBatcher.doExecuteBatch(BatchingBatcher.java:54)
      2. net.sf.hibernate.impl.BatcherImpl.executeBatch(BatcherImpl.java:126)
      3. net.sf.hibernate.impl.SessionImpl.executeAll(SessionImpl.java:2421)
      4. net.sf.hibernate.impl.SessionImpl.execute(SessionImpl.java:2373)
      5. net.sf.hibernate.impl.SessionImpl.flush(SessionImpl.java:2240)
      6. net.sf.hibernate.transaction.JDBCTransaction.commit(JDBCTransaction.java:61)
      6 frames
    5. Unknown
      Run.main
      1. Run.main(Run.java:36)
      1 frame