web-dev-qa-db-fra.com

Comment extraire des définitions de table à l'aide de SQL ou Toad

Quelqu'un peut-il me dire comment extraire mes définitions de table à l'aide de SQL? Je souhaite extraire les types de données de toutes mes tables et d'autres informations de mon schéma Oracle. J'ai environ 100 tables.

J'ai besoin de la documentation complète de mon schéma Oracle. Mon nom de schéma IS "cco".

Puis-je le faire par SQL?

J'utilise Toad for Data analyst 3.3. Veuillez me faire savoir si cet outil est utile.

12
santhosha

Vous pouvez essayer ceci -

select * from all_tab_cols
where owner = 'CCO';
6
Aditya Kakirde

Pour obtenir le DDL pour toutes les tables de l'utilisateur actuel, vous pouvez utiliser ceci:

select dbms_metadata.get_ddl('TABLE', table_name)
from user_tables;

Vous devrez ajuster votre client SQL pour pouvoir afficher correctement le contenu d'une colonne CLOB.

Plus de détails (par exemple sur la façon d'obtenir le DDL pour d'autres objets) peuvent être trouvés dans le manuel: http://docs.Oracle.com/cd/B28359_01/appdev.111/b28419/d_metada.htm =

9

vous pouvez utiliser le tableau: USER_TAB_COLUMNS

Trouvez ci-dessous un exemple de requête

select 
table_name,
column_name,
data_type,
data_length,
data_precision,
nullable
from USER_TAB_COLUMNS 
where table_name = '<table_name>';

Ceci n'est qu'un exemple, vous pouvez également faire un select * pour obtenir plus d'informations.

vous pouvez également utiliser le tableau: all_tab_columns

Pour un meilleur affichage, vous pouvez utiliser:

    select table_name,column_name, data_type||
case
when data_precision is not null and nvl(data_scale,0)>0 then '('||data_precision||','||data_scale||')'
when data_precision is not null and nvl(data_scale,0)=0 then '('||data_precision||')'
when data_precision is null and data_scale is not null then '(*,'||data_scale||')'
when char_length>0 then '('||char_length|| case char_used 
                                                         when 'B' then ' Byte'
                                                         when 'C' then ' Char'
                                                         else null 
                                           end||')'
end||decode(nullable, 'N', ' NOT NULL') as data_type
from user_tab_columns
where table_name = '<TABLE_NAME>';
7
Shann