1

こんにちは、テーブルの 1 つのセットの列を別のテーブルのセットと比較する必要があります。構造を説明しましょう。2 番目のテーブルのセットは、列の数が少ない最初のセットから取得されます。

TABLE NAMES:
W_table_1_fact
W_tables_2_fact
.........
........
W_table_n_dim
W_table_1_dim
W_tables_2_dim
.........
........
W_table_n_dim


ABC_W_table_1_fact
ABC_W_tables_2_fact
.........
........
ABC_W_table_n_dim
ABC_W_table_1_dim
ABC_W_tables_2_dim
.........
........
ABC_W_table_n_dim

接頭辞 ABC を持つテーブルには、元のテーブルから取得されたデータと列があります。ただし、いくつかの欠落している列と、おそらくいくつかのデータ (現時点では気にしません) を除きます。必要な列がプレフィックスが ABC のテーブルです。そのため、どの列が欠落しているかを示すクエリを作成する必要があります。誰かがクエリの作成を手伝ってくれますか。情報が必要な場合は、お気軽にお問い合わせください。必要な情報を提供します。

4

1 に答える 1

2

ソースにあるがテーブルのリスト全体のターゲットではない列 (データではない) を表示したいですか? このために、USER_TAB_COLUMNS で MINUS を実行できます。例えば:

with tables as
 (select table_name t1, 'ABC_'||table_name t2 --<--- prefixed table 2 based on tables name
    from user_tables 
   where table_name in ('W_TABLE_1_FACT', 'W_TABLES_2_FACT' ))
select t.*,
       cursor (select column_name
                  from user_tab_columns
                 where table_name = t.t1
                minus
                select column_name 
                  from user_tab_columns 
                 where table_name = t.t2) missing_columns
  from tables t
于 2012-12-14T16:35:21.427 に答える