Oracle ORA-01422:精确提取返回的请求数超过了请求的行数

时间:2013-05-04 09:29:01

标签: database oracle oracle11g user-defined-types member-functions

我正在尝试创建一个返回过期成员成员名称的成员函数。我的选择查询在成员函数之外工作,这个成员函数编译没有问题,但是当我调用该函数时,我得到了这个错误:

ORA-01422:精确提取返回超过请求的行数

我认为它很简单,但我没有长时间使用Oracle,所以语法有些困难。任何人都可以帮忙吗?

2 个答案:

答案 0 :(得分:1)

由于此查询可以返回多行,因此您需要使用游标和cursor-for循环来迭代结果。但是,您不能使用varchar返回多个成员名称;你可以使用PL-SQL表。

答案 1 :(得分:0)

选择m.forename为memberName   来自member_tab m   其中ADD_MONTHS(m.datejoined,64)< SYSDATE;

看起来这个查询返回的结果超过1个......

你可以使用选择计数(*)或异常处理来解决异常并处理> 1结果