我正在尝试将查询中apex_t_numbers集合中的值SELECT用作WITH子查询:
atn_cur_ids := apex_string.split_numbers(arg_v_ids, ':');
-- So if arg_v_ids := '1:2:3', then atn_cur_ids := apex_t_numbers(1, 2, 3)
with t_cur_ids as (
select * as id from table(atn_cur_ids);
)
select text from t_texts
join t_cur_ids on t_texts.id = t_cur_ids.id
这就是问题所在 -apex_t_numbers是一个表number,而不是record带有命名字段的类型。Oracle SQL 不允许为 a 赋予别名,*即使它只有一个“匿名”列。
一个可能的解决方案可能是一个函数
- 接收
*和 - 每行返回值
但我知道只有一个可以得到 a*并返回一些东西 - count(*),它不符合第二个要求。