Re: Можно ли сделать такое одним запросом
От: Softwarer http://softwarer.ru
Дата: 13.01.05 13:25
Оценка: 2 (1)
Здравствуйте, Аноним, Вы писали:

Можно. Для примера я выведу к таблицам столбцы "числовых полей" и строковых полей

SQL> ed
Wrote file afiedt.buf

  1  with
  2    number_columns as (
  3      select owner, table_name, column_name, 
  4        row_number() over (partition by table_name order by column_name) col_number
  5      from dba_tab_columns
  6      where data_type = 'NUMBER' and table_name in ( 'DBA_USERS', 'DBA_OBJECTS' )),
  7    string_columns as (
  8      select owner, table_name, column_name, 
  9        row_number() over (partition by table_name order by column_name) col_number
 10      from dba_tab_columns
 11      where data_type = 'VARCHAR2' and table_name in ( 'DBA_USERS', 'DBA_OBJECTS' ))
 12  select
 13    coalesce ( nc.table_name, sc.table_name ) "table:",
 14    nc.column_name "number fields:",
 15    sc.column_name "string fields:"
 16  from
 17    number_columns nc full outer join string_columns sc
 18    on ( nc.table_name = sc.table_name and nc.owner = sc.owner and
 19         nc.col_number = sc.col_number )
 20* order by 1, 2, 3
SQL> /

table:               number fields:       string fields:                        
-------------------- -------------------- --------------------                  
DBA_OBJECTS          DATA_OBJECT_ID       GENERATED                             
DBA_OBJECTS          OBJECT_ID            OBJECT_NAME                           
DBA_OBJECTS                               OBJECT_TYPE                           
DBA_OBJECTS                               OWNER                                 
DBA_OBJECTS                               SECONDARY                             
DBA_OBJECTS                               STATUS                                
DBA_OBJECTS                               SUBOBJECT_NAME                        
DBA_OBJECTS                               TEMPORARY                             
DBA_OBJECTS                               TIMESTAMP                             
DBA_USERS            USER_ID              ACCOUNT_STATUS                        
DBA_USERS                                 DEFAULT_TABLESPACE                    
DBA_USERS                                 EXTERNAL_NAME                         
DBA_USERS                                 INITIAL_RSRC_CONSUME                  
DBA_USERS                                 PASSWORD                              
DBA_USERS                                 PROFILE                               
DBA_USERS                                 TEMPORARY_TABLESPACE                  
DBA_USERS                                 USERNAME                              

17 rows selected.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.