Java 结果大小不正确:预期为1,实际为0

Java 结果大小不正确:预期为1,实际为0,java,sql,xml,Java,Sql,Xml,我正在测试环境中工作 下面是我在java中使用的查询 String sql = "INSERT INTO PO_PART_XML_IF (INTERFACE_ID, INTERFACE_TRANSACTION_ID," + " O_SEQ_NO, PART_NO, O_QTY, O_TYPE_CODE, R_R_NO" + " ,O_LINE_COMMENT, C_CODE, INPUT_USER_ID, INPUT_TI

我正在测试环境中工作

下面是我在java中使用的查询

String sql =     "INSERT INTO PO_PART_XML_IF (INTERFACE_ID, INTERFACE_TRANSACTION_ID,"
                + " O_SEQ_NO, PART_NO,  O_QTY, O_TYPE_CODE, R_R_NO"
                + " ,O_LINE_COMMENT, C_CODE, INPUT_USER_ID, INPUT_TIMESTAMP, "
                + "LAST_UPDATE_USER_ID, LAST_UPDATE_TIMESTAMP ) VALUES (   

                 G_REPAIR_PARTS_IF_SEQ.nextval,"+transactionnumber+",'"+orderSecNo+"','"+  
                 job.getPartNo()+"',"+ Long.parseLong(job.getOrderQty())+",'"+job.getDeliveryType().getTitle()+"','"+job.getServiceReceiptNo()+"','"+replaceSingleQuote(job.getOrderComment())+"','"+currencyCode+"','"+inputUserID+"',SYSDATE,'"+inputUserID+"',SYSDATE)";
当我做一些测试时,我在日志文件中得到了这个错误:

org.springframework.dao.EmptyResultDataAccessException: Incorrect result size: expected 1, actual 0
我直接在pl/sql上进行了检查,它工作得很好。我是说插入数据。但当您使用java程序进行测试时,它向我显示了这个错误


任何想法

您还没有显示实际执行查询的代码,但从消息判断,您执行的似乎是返回数据,即SELECT,但它是UPDATE语句


尝试使用适当的API执行更新。

如果查询正常,您必须检查,应该工作的代码是

Statement statement = dbConnection.createStatement();
statement.executeUpdate(sql);
您可能正在使用

statement.executeQuery(sql);

这对于insert查询是错误的。

首先要解决的问题是:通过包含这样的值来停止构建SQL。使用参数化SQL。这可能会解决问题,也可能不会解决问题,但在我看来,这绝对是你应该解决的第一件事。为什么你要解析一个长值,然后把它转换成一个字符串呢。它不是一个字符串吗?您正在尝试执行插入查询,错误提示一些数据访问问题,我会说您没有提供准确的数量信息来解决您的问题,或者您没有使用正确的API进行插入查询,或者这些参数有问题,因此,打印带有参数的SQL并尝试直接在DB上执行,这至少会告诉您查询是否正常。