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

news2024/12/20 0:16:34

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

该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.coloradmin.cn/o/2262424.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

学习笔记073——Java中的【Object】和【包装类】

文章目录 1、Object 类1.1、什么是 Object 类1.2、可能被重写的常用方法 2、包装类2.1、什么是包装类?2.2、装箱和拆箱 1、Object 类 1.1、什么是 Object 类 Java 通过类来构建代码的结构,类分为两种: 1、Java 提供的工具类,不…

面向预测性维护的TinyML技术栈全面综述

论文标题:A Holistic Review of the TinyML Stack for Predictive Maintenance(面向预测性维护的TinyML技术栈全面综述) 作者信息:Emil Njor, Mohammad Amin Hasanpour, Jan Madsen, Xenofon Fafoutis,均来自丹麦技术…

【MySQL】InnoDB引擎中的Compact行格式

目录 1、背景2、数据示例3、Compact解释【1】组成【2】头部信息【3】隐藏列【4】数据列 4、总结 1、背景 mysql中数据存储是存储引擎干的事,InnoDB存储引擎以页为单位存储数据,每个页的大小为16KB,平时我们操作数据库都是以行为单位进行增删…

【SpringAOP】深入浅出SpringAOP从原理到源码

AOP对象是如何创建的 对于熟悉Spring IOC流程源码的同学来说,一定了解bean的整个生命周期,也就是从实例化、属性填充、初始化三个过程。那么对于Bean 工厂来说,是如何保证需要创建代理的对象创建代理的呢。 从图中可以看到,本质…

VMware虚拟机Ubuntu 18.04版本 磁盘扩容

一、版本配置 虚拟机版本:VMware WORKSTATION 16 PRO Ubuntu版本:Ubuntu 18.04 二、磁盘大小介绍 目的:磁盘扩容(20G----->100G),从20G扩到100G 查看磁盘大小命令:df -h 扩容前的磁盘大小 …

QT多线程(二):基于互斥锁与读写锁的线程同步

此处需要说明的是,这里的线程同步概念与操作系统中的线程同步并无区别,都是避免多个线程同时访问临界区数据可能产生的读写错误问题。在 Qt 中,有多个类可以实现线程同步的功能,这些类包括 QMutex、QMutexLocker、 QReadWriteLock…

【ChatGPT】解锁AI思维链:如何让机器像人类一样思考?

在人工智能领域,我们一直在追求让机器像人类一样思考。然而,即使是最先进的AI,也常常被诟病缺乏“常识”,难以理解复杂问题,更不用说像人类一样进行逻辑推理和解决问题了。最经常的表现就是遇到不会的地方,…

重新定义页签!Choerodon UI Tabs让管理更高效

01 引言 Tabs 组件通过提供平级区域,将大块内容进行有效的收纳和展现,从而保持界面整洁。但在企业应用的快速发展中,这样传统的页签组件已无法满足我们对界面布局和个性化展示的追求。Choerodon UI Tabs 组件通过支持多级分组、个性化配置、…

机器学习之偏差

机器学习中的偏差(Bias)是指模型的预测值与真实值之间的系统性误差,或者说模型无法准确捕捉数据中复杂模式的能力。偏差通常与模型的假设或学习能力有关,过高的偏差会导致模型的性能不佳,表现为欠拟合。 偏差的来源 模…

SSH连接监控以及新用户创建和系统资源访问限制

目录 监控连接数SSH连接数的限制和影响理论限制可能的影响 创建SSH新用户为每个ssh用户配置系统资源限制1. 使用 /etc/security/limits.conf 限制资源2. 使用 cgroups 控制资源3. 磁盘配额限制4. 限制 SSH 访问5. 使用 PAM 限制6. 监控脚本示例7. 设置定期任务清理8. 检查配置是…

测试工程师八股文04|计算机网络 和 其他

一、计算机网络 1、http和https的区别 HTTP和HTTPS是用于在互联网上传输数据的协议。它们都是应用层协议,建立在TCP/IP协议栈之上,用于客户端(如浏览器)和服务器之间的通信。 ①http和https的主要区别在于安全性。http是一种明…

单片机学习笔记——入门51单片机

一、单片机基础介绍 1.何为单片机 单片机,英文Micro Controller Unit,简称MCU 。内部集成了中央处理器CPU、随机存储器ROM、只读存储器RAM、定时器/计算器、中断系统和IO口等一系列电脑的常用硬件功能 单片机的任务是信息采集(依靠传感器&a…

【青牛科技】D8563是低功耗的CMOS实时时钟/日历电路,它提供一个可编程时钟输出,一个中断输出和掉电检测器,所有的地址和数据通过IC总线接口串行传递。

概述: D8563是低功耗的CMOS实时时钟/日历电路,它提供一个可编程时钟输出,一个中断输出和掉电检测器,所有的地址和数据通过IC总线接口串行传递。最大总线速度为400Kbitss每次读写数据后,内嵌的字地址寄存器会自动产生增量。 主要特…

安卓获取所有可用摄像头并指定预览

在Android设备中,做预览拍照的需求的时候,我们会指定 CameraSelector DEFAULT_FRONT_CAMERA前置 或者后置CameraSelector DEFAULT_BACK_CAMERA 如果你使用的是平板或者工业平板,那么就会遇到多摄像头以及外置摄像头问题,简单的指…

R语言学习笔记-1

1. 基础操作和函数 清空环境:rm(list ls()) 用于清空当前的R环境。 打印输出:print("Hello, world") 用于输出文本到控制台。 查看已安装包和加载包: search():查看当前加载的包。install.packages("package_na…

Windows如何安装go环境,离线安装beego

一、安装go 1、下载go All releases - The Go Programming Language 通过网盘分享的文件:分享的文件 链接: https://pan.baidu.com/s/1MCbo3k3otSoVdmIR4mpPiQ 提取码: hxgf 下载amd64.zip文件,然后解压到指定的路径 2、配置环境变量 需要新建两个环境…

Mac上使用ln指令创建软链接、硬链接

在Mac、Linux和Unix系统中,软连接(Symbolic Link)和硬连接(Hard Link)是两种不同的文件链接方式。它们的主要区别如下: 区别: 硬连接: 不能跨文件系统。不能链接目录(为…

Unity A*算法实现+演示

注意: 本文是对基于下方文章链接的理论,并最终代码实现,感谢作者大大的描述,非常详细,流程稍微做了些改动,文末有工程网盘链接,感兴趣的可以下载。 A*算法详解(个人认为最详细,最通俗易懂的一…

博弈论3:图游戏SG函数(Graph Games)

目录 一、图游戏是什么 1.游戏特征 2.游戏实例 二、图游戏的必胜策略 1.SG 函数(Sprague-Grundy Function) 2.必胜策略(利用SG函数) 3.拿走游戏转化成图游戏(Take-away Game -> Graph Game) 一、图…

0101多级nginx代理websocket配置-nginx-web服务器

1. 前言 项目一些信息需要通过站内信主动推动给用户,使用websocket。web服务器选用nginx,但是域名是以前通过阿里云申请的,解析ip也是阿里云的服务器,甲方不希望更换域名。新的系统需要部署在内网服务器,简单拓扑图如…