0

テーブルを返す関数があります。返されたテーブルには、(特に) 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: データ型の一貫性がありません」というエラーが発生します。このクエリをどのように構成する必要がありますか?

(私はオラクルを使用しています)

~~~~~編集~~~~~

やってみると

select user2.f_get_store(city_id, transactioN_id) from table_name;

権限が不十分というエラーが表示されます。これは、私が使用しているユーザーとは異なるユーザーが f_get_store を所有しているためだと思います。

(サンプルコードを編集して、関数が別のユーザーによって所有されていることを示しました)

4

1 に答える 1

2

スカラーサブクエリが必要だと思います:

select (select store_id from table(user2.f_get_store(city_id, transaction_id))) store_id, city_id, transaction_id
from table_name;
于 2010-04-19T20:06:05.660 に答える