引起:org.hsqldb.HsqlException:基数违规

Posted

技术标签:

【中文标题】引起:org.hsqldb.HsqlException:基数违规【英文标题】:Caused by: org.hsqldb.HsqlException: cardinality violation 【发布时间】:2015-06-10 09:17:56 【问题描述】:

我正在使用 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();

【问题讨论】:

【参考方案1】:

两个 OUT 变量是标量并且只接受一个值。如果要返回多行数据,应该在过程体中打开一个CURSOR,读取过程调用返回的ResultSet。

详细信息在指南中:

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

【讨论】:

以上是关于引起:org.hsqldb.HsqlException:基数违规的主要内容,如果未能解决你的问题,请参考以下文章

杂牌设备网络接入引起交换机引起端口翻转的故障

csharp 可能会引起问题的类的继承问题,父类后来增加的方法可能会引起子类的函数重载错误

两则dhcp设置引起的故障

大开测试:性能-如何解决由于设置引起的运行失败问题(连载22)

查找由智能指针引起的内存泄漏

电脑蓝屏问题引起原因及解决办法