0
で作成された2つのテーブルに対して内部結合を適用する同じテーブルの2つのバージョンがあり、両方の違いを知りたいとします。変更された行を古いテーブルと新しいテーブルに表示されるように、マイナスクエリを2回使用して印刷します。マイナス
ここで、特定の列で変更された行を表示する新しいクエリを追加します。
(select * from NewTable minus select * from OldTable) NewRows
inner join
(select * from OldTable minus select * from NewTable) OldRows
on NewRows.column1 = OldRows.column1
and NewRows.column2 <> OldRows.column2
ここで、column1は一意の行IDであり、列2は変更されたプロパティです。
私はのOracle SQL Developerのを実行すると、私はエラーORA-00933を「SQLコマンドが正常に終了していない」、と彼はエラーとしてNewRowsの定義を示し得ます。私も ")NewRowsとして"試みたが、それは動作しませんでした。
次のクエリが機能するため、NewTableとOldTableは互換性があります。
(select * from NewTable minus select * from OldTable)
union
(select * from OldTable minus select * from NewTable)
ありがとう、最初の "選択*から"トリックを追加していただきありがとうございます。 – AVS