1

「CID」、「NAME」、「EMAIL」、「LOC」は、2 つのテーブルの属性です。

ビュー TEST_V を作成

選択 * テーブル 1 から

連合

* テーブル 2 から選択します。


TEST_ERROR に挿入 (Source_Rowid、Source_Table、Filter_Id、Date_Time、Action)

ROWID、'TEST_V'、100、sysdate、'Request Admin' を選択します。

TEST_V から

LOC = (場所から CityList を選択);

場所は別のテーブルであり、CityList が定義されています。CityList と LOC を一致させてから、行を追加します。

私が得ているエラーは次のとおりです。

SQL エラー: ORA-01446: DISTINCT、GROUP BY などを含むビューから ROWID を選択することも、ビューをサンプリングすることもできません。

4

2 に答える 2

0

ビューの実表の ROWID が必要な場合は、次のようにします。

Create View TEST_V As
Select Table1.*, rowid as row_id From Table1
Union all
Select Table2.*, rowid as row_id From Table2;

それから:

Insert Into TEST_ERROR (Source_Rowid, Source_Table, Filter_Id, Date_Time, Action)
Select ROW_ID, 'TEST_V', 100, sysdate,'Request Admin'
From TEST_V
Where LOC in (Select CityList From Location);
于 2012-05-23T10:29:08.530 に答える
0

このクエリ ( loc= select citylist from location ) では、この多くの都市が一度に選択されるため、これらは同時に loc に収まらないため、なぜエラーが発生するので、これを試してください ( loc =( select citylist from location where citylist= 「あなたのテーブルにある都市の名前として」) ) うまくいくと思います

于 2012-05-23T13:34:39.070 に答える