我使用 HSQLDB 作为我的 java 应用程序的后端,当我尝试使用单条记录调用 java 中的过程时,我能够获取结果集,但对于多条记录,我收到以下异常 "引起原因:org.hsqldb.HsqlException:基数违规”
CREATE PROCEDURE get_Street(OUT c_str_col VARCHAR(50), OUT c_color VARCHAR(50)) READS SQL DATA BEGIN ATOMIC SELECT str_col, color INTO c_str_col, c_color FROM sample;END
String proc = ("{call get_Street(?,?)}");
CallableStatement cs = connection.prepareCall(proc);
cs.registerOutParameter(1, Types.VARCHAR);
cs.registerOutParameter(2, Types.VARCHAR);
cs.execute();
最佳答案
这两个 OUT 变量是标量并且仅接受单个值。如果你想返回多行数据,你应该在过程体中打开一个CURSOR并读取过程调用返回的ResultSet。
详细信息请参阅指南:
http://hsqldb.org/doc/2.0/guide/sqlroutines-chapt.html#src_returning_data
关于java - 由 : org. hsqldb.HsqlException 引起:基数违规,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30752164/