我有一个返回表的函数。返回的表包含(除其他外)store_id。我可以按如下方式获取特定transaction_id和city_id的store_id:
select store_id from table(user2.f_get_store(15, 12345));
--where 15 and 12345 are city_id and transation_id
我有另一个包含事务列表的表(包括transaction_id和city_id)。我想要一个返回
的查询store_id, city_id, transaction_id
表示事务表中的每个条目。我的第一个猜测是:
select user2.f_get_store(city_id, transaction_id), city_id, transaction_id
from table_name;
(简化了不重要的细节)
但是,这会产生“ORA-00932:不一致的数据类型”错误。我如何构建此查询?
(我正在使用Oracle)
~~~~~ EDIT ~~~~~
当我尝试
时select user2.f_get_store(city_id, transactioN_id) from table_name;
我没有足够的权限错误。我认为这是因为f_get_store由与我使用的用户不同的用户拥有。
(我编辑了示例代码以显示其他用户拥有的功能)
答案 0 :(得分:2)
我认为你想要一个标量子查询:
select (select store_id from table(user2.f_get_store(city_id, transaction_id))) store_id, city_id, transaction_id
from table_name;