【发布时间】:2015-06-23 13:00:36
【问题描述】:
尽管 cf_type 列是 group by 子句的精确副本,但我得到 ORA-00979 错误:
select case when a.accdef in (select column_value from
table(accounts.get_corr_asset_accs))
then 'IN' else 'OUT' end cf_type
from a
group by case when a.accdef in
(select column_value
from table(accounts.get_corr_asset_accs)) then 'IN' else 'OUT'
end;
但是在下面的例子中,当包没有被访问时,sql语句执行成功:
select case when a.accdef in (select 1 from dual) then 'IN' else 'OUT' end cf_type
from a
group by case when a.accdef in (select 1 from dual) then 'IN' else 'OUT' end;
为什么会出现错误(我知道我可以使用内联视图,但我对错误原因更感兴趣)?函数(accounts包的一部分)和嵌套表定义如下:
function get_corr_asset_accs return acc_numbers result_cache;
create type acc_numbers as table of number;
【问题讨论】:
-
@Sachu,您提供的编辑无效。 SQL 语句应为代码格式。