查询表信息

简介: 收集表信息脚本 大神写的脚本分享给大家,用来收集表信息的 -- | PURPOSE : Prompt the user for a schema and and table name then query all |-- | metadata about the table.

收集表信息脚本

大神写的脚本分享给大家,用来收集表信息的

-- | PURPOSE  : Prompt the user for a schema and and table name then query all  |
-- |            metadata about the table.                                       |
-- | NOTE     : As with any code, ensure to test this script in a development   |
-- |            environment before attempting to run it in production.          |
-- +----------------------------------------------------------------------------+


SET PAGESIZE 9999
SET VERIFY   OFF
SET FEEDBACK OFF
SET LONG 9000

-- +----------------------------------------------------------------------------+
-- | PROMPT USER FOR SCHEMA AND TABLE                                           |
-- +----------------------------------------------------------------------------+

ACCEPT sch prompt 'Enter Schema (i.e. SCOTT) : '
ACCEPT tab prompt 'Enter Table  (i.e. EMP) : '


PROMPT 
PROMPT +----------------------------------------------------------------------------+
PROMPT | TABLE INFORMATION                                                          |
PROMPT +----------------------------------------------------------------------------+

COLUMN owner               FORMAT A15                HEADING "Owner"
COLUMN table_name          FORMAT A30                HEADING "Table Name"
COLUMN tablespace_name     FORMAT A28                HEADING "Tablespace"
COLUMN last_analyzed       FORMAT A20                HEADING "Last Analyzed"
COLUMN num_rows            FORMAT 999,999,999        HEADING "# of Rows"

SELECT
    owner
  , table_name
  , tablespace_name
  , TO_CHAR(last_analyzed, 'DD-MON-YYYY HH24:MI:SS') last_analyzed
  , num_rows
FROM
    dba_tables
WHERE
      owner      = UPPER('&sch')
  AND table_name = UPPER('&tab')
/

PROMPT 
PROMPT +----------------------------------------------------------------------------+
PROMPT | OBJECT INFORMATION                                                         |
PROMPT +----------------------------------------------------------------------------+

COLUMN object_id                                     HEADING "Object ID"
COLUMN data_object_id                                HEADING "Data Object ID"
COLUMN created             FORMAT A20                HEADING "Created"
COLUMN last_ddl_time       FORMAT A20                HEADING "Last DDL"
COLUMN status                                        HEADING "Status"

SELECT
    object_id
  , data_object_id
  , TO_CHAR(created, 'DD-MON-YYYY HH24:MI:SS')        created
  , TO_CHAR(last_ddl_time, 'DD-MON-YYYY HH24:MI:SS')  last_ddl_time
  , status
FROM
    dba_objects
WHERE
      owner       = UPPER('&sch')
  AND object_name = UPPER('&tab')
  AND object_type = 'TABLE'
/

PROMPT 
PROMPT +----------------------------------------------------------------------------+
PROMPT | SEGMENT INFORMATION                                                        |
PROMPT +----------------------------------------------------------------------------+

COLUMN segment_type                                  HEADING "Segment Type"
COLUMN bytes               FORMAT 9,999,999,999,999  HEADING "Bytes"
COLUMN extents             FORMAT 999,999,999        HEADING "Extents"
COLUMN initial_extent      FORMAT 999,999,999,999    HEADING "Initial|Extent"
COLUMN next_extent         FORMAT 999,999,999,999    HEADING "Next|Extent"
COLUMN min_extents         FORMAT 999                HEADING "Min|Extents"
COLUMN max_extents         FORMAT 9,999,999,999      HEADING "Max|Extents"
COLUMN pct_increase        FORMAT 999.00             HEADING "Pct|Increase"
COLUMN freelists                                     HEADING "Free|Lists"
COLUMN freelist_groups                               HEADING "Free|List Groups"

SELECT 
    segment_type     segment_type
  , bytes/1024/1024  Mbytes
  , extents          extents
  , initial_extent   initial_extent
  , next_extent      next_extent
  , min_extents      min_extents
  , max_extents      max_extents
  , pct_increase     pct_increase
  , freelists        freelists
  , freelist_groups  freelist_groups
FROM
    dba_segments
WHERE
      owner        = UPPER('&sch')
  AND segment_name = UPPER('&tab')
/


PROMPT 
PROMPT +----------------------------------------------------------------------------+
PROMPT | COLUMNS                                                                    |
PROMPT +----------------------------------------------------------------------------+

COLUMN column_name         FORMAT A20                HEADING "Column Name"
COLUMN data_type           FORMAT A25                HEADING "Data Type"
COLUMN nullable            FORMAT A13                HEADing "Null?"

SELECT
    column_name
  , DECODE(nullable, 'Y', ' ', 'NOT NULL') nullable
  , DECODE(data_type
               , 'RAW',      data_type || '(' ||  data_length || ')'
               , 'CHAR',     data_type || '(' ||  data_length || ')'
               , 'VARCHAR',  data_type || '(' ||  data_length || ')'
               , 'VARCHAR2', data_type || '(' ||  data_length || ')'
               , 'NUMBER', NVL2(   data_precision
                                 , DECODE(    data_scale
                                            , 0
                                            , data_type || '(' || data_precision || ')'
                                            , data_type || '(' || data_precision || ',' || data_scale || ')'
                                   )
                                 , data_type)
               , data_type
    ) data_type
FROM
    dba_tab_columns
WHERE
      owner      = UPPER('&sch')
  AND table_name = UPPER('&tab')
ORDER BY
    column_id
/


PROMPT 
PROMPT +----------------------------------------------------------------------------+
PROMPT | CONSTRAINTS                                                                |
PROMPT | UNCOMMENT THIS SECTION FROM THE SCRIPT TO GET THE INFO ABOUT CONST         |
PROMPT +----------------------------------------------------------------------------+
PROMPT

COLUMN constraint_name     FORMAT A18                HEADING "Constraint Name"
COLUMN constraint_type     FORMAT A11                HEADING "Constraint|Type"
COLUMN search_condition    FORMAT A15                HEADING "Search Condition"
COLUMN r_constraint_name   FORMAT A20                HEADING "R / Constraint Name"
COLUMN delete_rule         FORMAT A11                HEADING "Delete Rule"
COLUMN status                                        HEADING "Status"

BREAK ON constraint_name ON constraint_type

SELECT 
    a.constraint_name
  , DECODE(a.constraint_type
             , 'P', 'Primary Key'
             , 'C', 'Check'
             , 'R', 'Referential'
             , 'V', 'View Check'
             , 'U', 'Unique'
             , a.constraint_type
    ) constraint_type
  , b.column_name
  , a.search_condition
  , NVL2(a.r_owner, a.r_owner || '.' ||  a.r_constraint_name, null) r_constraint_name
  , a.delete_rule
  , a.status
FROM 
    dba_constraints  a
  , dba_cons_columns b
WHERE
      a.owner            = UPPER('&sch')
  AND a.table_name       = UPPER('&tab')
  AND a.constraint_name  = b.constraint_name
  AND b.owner            = UPPER('&sch')
  AND b.table_name       = UPPER('&tab')
ORDER BY
    a.constraint_name
  , b.position
/


SET PAGESIZE 9999
SET VERIFY   OFF
SET FEEDBACK ON


目录
相关文章
|
存储 分布式计算 资源调度
Hadoop 三大组件及作用【重要】
Hadoop 三大组件及作用【重要】
557 0
|
6月前
|
机器学习/深度学习 自然语言处理 物联网
Prot2Chat:融合蛋白质序列与结构的新型问答框架
Prot2Chat:融合蛋白质序列与结构的新型问答框架
121 1
|
11月前
|
运维 网络协议
IP地址与子网划分:IPv4与IPv6地址规划及子网掩码计算详解
IP地址与子网划分:IPv4与IPv6地址规划及子网掩码计算详解
3243 3
|
12月前
|
监控 数据可视化 小程序
项目管理中WBS元素是什么?如何应用?
WBS(工作分解结构)是项目管理中的核心工具,将项目分解为更小、更易于管理的部分。WBS元素是构成WBS的基本单元,代表项目中的特定工作内容或任务。WBS元素最早起源于20世纪50年代的美国,现已广泛应用于建筑、软件开发、市场营销等多个领域。通过WBS元素,项目经理可以明确项目范围、促进资源分配、支持进度规划、便于风险管理、优化沟通协调和控制项目成本。创建WBS元素的过程包括确定项目目标、识别主要工作领域、细分工作领域、定义WBS元素及其关系、验证和更新WBS。尽管WBS元素有许多优点,但也存在需要时间和资源、可能过于复杂及需持续更新的缺点。
项目管理中WBS元素是什么?如何应用?
记录-- 阿里云centos8 20G硬盘扩容100G
记录-- 阿里云centos8 20G硬盘扩容100G
215 0
|
12月前
|
JSON 测试技术 API
阿里云PAI-Stable Diffusion开源代码浅析之(二)我的png info怎么有乱码
阿里云PAI-Stable Diffusion开源代码浅析之(二)我的png info怎么有乱码
|
机器学习/深度学习 并行计算 Android开发
Int8量化算子在移动端CPU的性能优化
Int8量化算子在移动端CPU的性能优化
460 0
|
Kubernetes Cloud Native Linux
CKAD考试实操指南(一)--- 登顶CKAD:征服考试的完美蓝图
Certified Kubernetes Application Developer (CKAD)是由Linux Foundation和Cloud Native Computing Foundation (CNCF)联合推出的一项专业认证,旨在验证候选人是否具备Kubernetes应用开发者所需的技能、知识和能力。CKAD考试是一个在线的、监考的、基于性能的考试,由一系列需要在命令行中解决的性能型任务(问题)组成,考试时间为2小时。
1407 0
CKAD考试实操指南(一)--- 登顶CKAD:征服考试的完美蓝图
screenfull全屏、退出全屏、指定元素全屏的使用步骤
screenfull全屏、退出全屏、指定元素全屏的使用步骤
827 5
|
机器学习/深度学习 存储 算法
梯度下降算法(一)
梯度下降是一种迭代优化算法,用于找到多变量函数的最小值。它不直接求解方程,而是从随机初始点开始,沿着梯度(函数增大幅度最大方向)的反方向逐步调整参数,逐步逼近函数的最小值。在单变量函数中,梯度是导数,而在多变量函数中,梯度是一个包含所有变量偏导数的向量。通过计算梯度并乘以学习率,算法更新参数以接近最小值。代码示例展示了如何用Python实现梯度下降,通过不断迭代直到梯度足够小或达到预设的最大迭代次数。该过程可以类比为在雾中下山,通过感知坡度变化来调整前进方向。