【问题标题】:How to extract table definitions using SQL or Toad如何使用 SQL 或 Toad 提取表定义
【发布时间】:2013-10-24 11:44:10
【问题描述】:

谁能告诉我如何使用 SQL 提取我的表定义?我想从我的 Oracle 模式中提取所有表的数据类型和其他信息。我有大约 100 张桌子。

我需要我的 Oracle 架构的完整文档。我的架构名称是“cco”。

我可以通过 SQL 做到这一点吗?

我正在使用 Toad for Data Analyst 3.3。如果这个工具有帮助,请告诉我。

【问题讨论】:

  • 如果您没有很多表,您可以使用 toad for data Analyst 查看所有表的数据类型。您可以从对象资源管理器中执行此操作,双击表名,您将在选项卡列的新窗口中找到所需的信息。
  • 我有 100 多张桌子。现在我想提取所有表格信息用于文档目的
  • @santosha 我已发布查询以获取表的数据类型。

标签: sql oracle toad


【解决方案1】:

你可以试试这个——

select * from all_tab_cols
where owner = 'CCO';

【讨论】:

    【解决方案2】:

    要获取当前用户所有表的 DDL,可以这样:

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

    您需要调整您的 SQL 客户端,以便能够正确显示 CLOB 列的内容。

    更多细节(例如关于如何获取其他对象的 DDL)可以在手册中找到:http://docs.oracle.com/cd/B28359_01/appdev.111/b28419/d_metada.htm

    【讨论】:

      【解决方案3】:

      你可以使用表:USER_TAB_COLUMNS

      查找以下查询示例

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

      这只是一个示例,您也可以通过select * 获取更多信息。

      您也可以使用表格:all_tab_columns

      为了获得更好的显示效果,您可以使用:

          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>';
      

      【讨论】:

      • 我添加了一段 sql,您可以将结果粘贴到文档中。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2023-03-30
      • 2011-12-27
      • 2015-09-28
      • 2018-12-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多