0

私は調査を行いました。私の質問に似たものは見つかりませんでした。私の質問が重複している場合は、私の研究で見つけられなかったため、ご容赦ください。

schema1 と schema2 の 2 つのスキーマがあり、どちらにも同じ 6 つのテーブルがあります。

ただし、すべてのテーブルがスキーマ内に同じ列を持つわけではありません。

Exp: tab1 にはスキーマ 1 に 40 列が存在しますが、スキーマ 2 には tab1 に 38 列が存在します。そのため、追加したい列が 2 つ不足しています。挿入する必要があるデータがあります。

手動で挿入できますが、時間がかかります。簡単なクエリはありませんか?

私の研究では、そのために役立つツールを見つけました。ありがとう

4

2 に答える 2

1

以下は、schema2 に存在しない schema1 の列を示しています。

SELECT table_name, column_name, data_type, data_length
  FROM all_tab_columns
 WHERE owner = 'schema1'
MINUS
SELECT table_name, column_name, data_type, data_length
  FROM all_tab_columns
 WHERE owner = 'schema2'

上記を編集して、出力にデータ型と長さを含めるという Alex の提案を含めました。

于 2013-05-14T13:57:01.477 に答える
0

側面からの違いを見たい場合は、full outer join

select      a.table_name , a.column_name , a.data_type , a.data_length , 
            b.table_name , b.column_name , b.data_type , b.data_length
from        all_tab_columns a full outer join all_tab_columns b 
on          (a.column_name = b.column_name)
where       a.owner = 'OWNER_A'
and         a.table_name = 'TABLE_A'
and         b.owner = 'OWNER_B'
and         b.table_name = 'TABLE_B'
于 2013-05-14T15:47:26.813 に答える