I need to verify if some columns from one table are present on anothers.
For example, i have a
table A
x | y |
---|---|
1 | 2 |
... | ... |
and a
table B
w | x |
---|---|
1 | 2 |
... | ... |
The final output should be:
column w
Is this possible?
CodePudding user response:
Use ALL_TAB_COLUMNS
and MINUS
. Like so:
SELECT column_name
FROM all_tab_columns
WHERE owner = 'whoever owns TABLE_A'
AND table_name = 'TABLE_A'
MINUS
SELECT column_name
FROM all_tab_columns
WHERE owner = 'whoever owns TABLE_B'
AND table_name = 'TABLE_B'
This will return the names of any column that exists in TABLE_A
but not TABLE_B
.
CodePudding user response:
The easiest and straightforward way to check for the column in a table is to use the information schema for column system view. Write a select query for INFORMATION_SCHEMA.COLUMNS as shown below. If the query returns record, then the column is available in the table.
USE {{Database Name}} SELECT * FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME = '{{Table Name}}' AND COLUMN_NAME = '{{Column Name}}'