1

スキーマ内に、テーブル ACTION などのテーブルがある状況に陥りましたが、別のテーブルを別のスキーマに参照する ACTION というシノニムも取得しました。

さて、クエリを実行すると

select * from ACTION

テーブルからレコードを選択しますが、シノニムは選択しません。

とにかく、シノニムとテーブルの両方を一緒に選択するにはどうすればよいですか?

ありがとう

4

3 に答える 3

5

Oracleでは許可されていないため、ACTIONシノニムがACTIONテーブルと同じスキーマにあるとは思いません。ACTION シノニムが他のスキーマにある可能性が高く、おそらく PUBLIC シノニムです。その場合は使用できます

select * from ACTION
union 
select * from public.ACTION
于 2008-11-07T13:26:48.393 に答える
4

基になる ACTION テーブルの名前を変更する必要があります。たとえば、LOCAL_ACTION を実行します。

ACTION シノニムが otheruser.LOCAL_ACTION テーブルにあるとしましょう...

次に、ACTION シノニムを次のように再定義できます。

SELECT * from LOCAL_ACTION
UNION
SELECT * from otheruser.LOCAL_ACTION

最後に select * from ACTION を実行すると、両方のテーブルを組み合わせたリストが表示されます。

于 2008-11-07T13:01:27.917 に答える
1

テーブルとプライベート シノニムは実際に同じ名前空間を共有するため、パブリック シノニムです

UNION は、結果セットに対する暗黙の個別であることに注意してください。あなたが必要としているのは UNION ALL です。

select * from ACTION
union all
select * from public.ACTION
于 2008-11-10T13:44:31.010 に答える