原因:org.hsqldb.HsqlException:违反基数

Caused by: org.hsqldb.HsqlException: cardinality violation

我正在使用 HSQLDB 作为我的 java 应用程序的后端,当我尝试使用单个记录调用 java 中的过程时,我能够获得结果集,但对于多个记录,我收到以下异常 "Caused by: org.hsqldb.HsqlException: cardinality violation"

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 变量是标量并且只接受一个值。如果您想 return 多行数据,您应该在过程主体中打开一个 CURSOR 并读取一个由过程调用 return 编辑的结果集。

指南中有详细信息:

http://hsqldb.org/doc/2.0/guide/sqlroutines-chapt.html#src_returning_data