Выберите из таблицы и функции - PullRequest
0 голосов
/ 19 апреля 2010

У меня есть функция, которая возвращает таблицу. Возвращенная таблица содержит (среди прочего) store_id. Я могу получить store_id для конкретного транзакции и city_id следующим образом:

select store_id from table(user2.f_get_store(15, 12345)); 
--where 15 and 12345 are city_id and transation_id

У меня есть другая таблица, которая содержит список транзакций (который включает транзакции_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 Ответ

2 голосов
/ 20 апреля 2010

Я думаю, что вы хотите скалярный подзапрос:

select (select store_id from table(user2.f_get_store(city_id, transaction_id))) store_id, city_id, transaction_id
from table_name;
...