从表格和功能中选择

时间:2010-04-19 19:36:20

标签: sql oracle function ora-00932

我有一个返回表的函数。返回的表包含(除其他外)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由与我使用的用户不同的用户拥有。

(我编辑了示例代码以显示其他用户拥有的功能)

1 个答案:

答案 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;