Query below lists:
(A) tables' columns, along with their name's length. All tables accessible to the current user in Oracle database
(B) tables' columns, along with their name's length. All tables in Oracle database
Query was executed under the Oracle9i Database version.
Query
A. Tables accessible to the current user
select col.column_name,
length(col.column_name) as column_name_length,
col.owner as schema_name,
col.table_name
from sys.all_tab_columns col
inner join sys.all_tables t on col.owner = t.owner
and col.table_name = t.table_name
-- excluding some Oracle maintained schemas
where col.owner not in ('ANONYMOUS','CTXSYS','DBSNMP','EXFSYS', 'LBACSYS',
'MDSYS', 'MGMT_VIEW','OLAPSYS','OWBSYS','ORDPLUGINS', 'ORDSYS','OUTLN',
'SI_INFORMTN_SCHEMA','SYS','SYSMAN','SYSTEM', 'TSMSYS','WK_TEST',
'WKPROXY','WMSYS','XDB','APEX_040000', 'APEX_PUBLIC_USER','DIP',
'FLOWS_30000','FLOWS_FILES','MDDATA', 'ORACLE_OCM', 'XS$NULL',
'SPATIAL_CSW_ADMIN_USR', 'SPATIAL_WFS_ADMIN_USR', 'PUBLIC', 'WKSYS')
order by length(col.column_name) desc,
col.column_name,
col.owner,
col.table_name;
B. If you have privilege on dba_tables and dba_tab_columns
select col.column_name,
length(col.column_name) as column_name_length,
col.owner as schema_name,
col.table_name
from sys.dba_tab_columns col
inner join sys.dba_tables t on col.owner = t.owner
and col.table_name = t.table_name
-- excluding some Oracle maintained schemas
where col.owner not in ('ANONYMOUS','CTXSYS','DBSNMP','EXFSYS', 'LBACSYS',
'MDSYS', 'MGMT_VIEW','OLAPSYS','OWBSYS','ORDPLUGINS', 'ORDSYS','OUTLN',
'SI_INFORMTN_SCHEMA','SYS','SYSMAN','SYSTEM', 'TSMSYS','WK_TEST',
'WKPROXY','WMSYS','XDB','APEX_040000', 'APEX_PUBLIC_USER','DIP',
'FLOWS_30000','FLOWS_FILES','MDDATA', 'ORACLE_OCM', 'XS$NULL',
'SPATIAL_CSW_ADMIN_USR', 'SPATIAL_WFS_ADMIN_USR', 'PUBLIC', 'WKSYS')
order by length(col.column_name) desc,
col.column_name,
col.owner,
col.table_name;
Columns
- column_name - column name
- column_name_length - length of the column name
- schema_name - table owner, schema name
- table_name - table name
Rows
- One row represents one column in a database
Scope of rows: (A) tables' columns, along with their name's length. All tables accessible to the current user in Oracle database, (B) tables' columns, along with their name's length. All tables in Oracle database
Ordered by length of the column name, column name, schema name, table name