当前位置: 首页 > article >正文

达梦查询表字段详细信息脚本(字段名称、描述、类型、长度及是否为空)

达梦查询表字段详细信息脚本(字段名称、描述、类型、长度及是否为空)

该SQL 脚本,用于查询表中字段的基本信息,包括字段名称、描述、数据类型、数据长度、是否为空及是否为主键等属性。


SQL 脚本

-- 输入变量
DECLARE
    p_owner VARCHAR2(100) := 'DMEO_DATABASE'; -- 数据库名
    p_table_name VARCHAR2(100) := 'RES_DIVISION'; -- 表名
BEGIN
    -- 查询字段基本信息和描述
    SELECT
        c.column_name AS 字段名,
        s.comments AS 字段描述,
        c.data_type AS 数据类型,
        c.DATA_LENGTH AS 数据长度,
        CASE
            WHEN cc.CONSTRAINT_NAME IS NOT NULL THEN '是'
            ELSE '否'
        END AS 是否主键,
        CASE
            WHEN c.NULLABLE = 'Y' THEN '是'
            ELSE '否'
        END AS 是否可空,
        CASE
            WHEN c.column_name IN ('CREATE_DATE', 'CREATE_ID', 'CREATE_BY', 'UPDATE_DATE', 'UPDATE_ID', 'UPDATE_BY') THEN '否'
            ELSE '是'
        END AS 是否业务关键信息
    FROM
        all_tab_columns c
    JOIN all_tab_comments t
        ON c.owner = t.owner
        AND c.table_name = t.table_name
    JOIN all_col_comments s
        ON c.owner = s.owner
        AND c.table_name = s.table_name
        AND c.column_name = s.column_name
    LEFT JOIN (
        SELECT
            CONSTRAINT_NAME,
            COLUMN_NAME
        FROM
            ALL_CONS_COLUMNS
        WHERE
            CONSTRAINT_NAME IN (
                SELECT
                    CONSTRAINT_NAME
                FROM
                    ALL_CONSTRAINTS
                WHERE
                    TABLE_NAME = p_table_name
                    AND OWNER = p_owner
                    AND CONSTRAINT_TYPE = 'P'
            )
    ) cc
    ON c.COLUMN_NAME = cc.COLUMN_NAME
    WHERE
        c.owner = p_owner
        AND c.table_name = p_table_name
        AND c.column_name NOT IN ('CREATE_ID', 'UPDATE_ID')
    ORDER BY
        c.column_id;
END;

功能说明

  • 查询字段基本信息
    包括字段名称、数据类型、字段长度及字段描述。

  • 分析字段的属性
    判断字段是否为主键、是否允许为空及是否为业务关键信息。

  • 过滤特定字段
    排除特定字段,如 CREATE_ID 和 UPDATE_ID。

  • 按字段顺序排序
    按字段物理存储顺序(column_id)进行排序,确保输出结果与表定义一致。

详细解析

脚本通过查询达梦数据库的以下系统视图,提取表的元数据:

  1. all_tab_columns

    提供字段的基本信息,包括名称、数据类型、长度、可空性等。

  2. all_tab_comments 和 all_col_comments

    用于获取表及字段的注释信息。

  3. all_cons_columns 和 all_constraints

    用于查询表的主键约束信息。

输出结果示例

执行上述脚本后,可能会输出以下结果:
在这里插入图片描述

应用场景

  • 大数据抽取
    提取表的详细字段信息,用于大数据平台的字段映射和数据同步。
  • 设计文档生成
    自动生成数据字典或表结构文档,便于开发团队、数据库管理员等人员参考。
  • 数据库审计与优化
    检查表字段的属性,如可空性、主键等,确保数据库设计符合业务需求及性能要求。
  • 业务系统开发
    提供字段详细信息,为开发人员提供数据表结构支持,确保系统的兼容性和高效性。

http://www.kler.cn/a/441353.html

相关文章:

  • 国内优秀的FPGA设计公司主要分布在哪些城市?
  • 多模态论文笔记——TECO
  • Python从0到100(八十五):神经网络-使用迁移学习完成猫狗分类
  • gradle和maven的区别以及怎么选择使用它们
  • AI赋能医疗:智慧医疗系统源码与互联网医院APP的核心技术剖析
  • 【时时三省】(C语言基础)对比一组函数
  • MSSQL AlwaysOn 可用性组(Availability Group)中的所有副本均不健康排查步骤和解决方法
  • 从源码构建安装Landoop kafka-connect-ui
  • gRPC为什么比基于JSON的REST API快
  • Copilot,Cursor和通义灵码:到底谁才是你的最强代码助手?
  • 【学习笔记总结】华为云:应用上云后的安全规划及设计
  • 问题:ValueError: too many values to unpack
  • 【python篇】——python基础语法一篇就能明白,快速理解
  • 键盘行算法
  • uniapp跨端适配—条件编译
  • vue webpack详情配置说明
  • 在 Docker 容器内运行 MySQL 并执行 SQL 脚本文件
  • 【小白包会的】使用supervisor 管理docker内多进程
  • [maven]使用spring
  • Docker--Docker Registry(镜像仓库)
  • [Unity Shader] 【游戏开发】Unity Shader的结构2-深入理解 SubShader 的结构与应用
  • 【C 语言文件操作】—— 内存映射与高效 I/O 策略的深度融合
  • LabVIEW 保存文件
  • SpringBoot实现定时发送邮件功能
  • 【GoF23种设计模式】02_单例模式(Singleton Pattern)
  • 复原IP地址 什么是运算符重载? 如何在 C++ 中进行运算符重载?运算符重载在面向对象编程中的好处是什么?getline方法