达梦文档论坛链接是:https://eco.dameng.com/search/ (你一定会用得到!)

获取表名、表注释

SELECT
	TABLE_NAME AS "表名",
	COMMENTS AS "表中文名"
FROM
	USER_TAB_COMMENTS;

获取表字段信息

SELECT
	TABLE_NAME AS "表名",
	COLUMN_NAME AS "字段名",
	DATA_TYPE AS "字段类型",
	DATA_LENGTH AS "字段长度",
	NULLABLE AS "可为空", 
	COLUMN_ID AS "字段排序", 
	DATA_DEFAULT AS "默认值"
FROM
	USER_TAB_COLUMNS;

表 名长度检测SQL

-- 表名长度检测SQL
SELECT
	TABLE_NAME AS "表名",
	char_length(TABLE_NAME) AS "表名长度"
FROM
	USER_TAB_COMMENTS
ORDER BY
	 "表名长度" DESC;

完整表信息✅✅✅ 每次查询仅支持一个 SCHNAME

注意:不支持任何形式多模式下查询。仅支持单模式下查询

注意:这里可能需要权限哦,如果不是本账号所持有,可能有些字段是空,建议不要通过SYSCOLUMNCOMMENTS 表的 SCHNAME 来筛选查询

-- 获取所有的表结构     
SELECT
	columnComment.SCHNAME AS "表模式所属",
	tabInfo.TABLE_NAME AS "表名",
	tabComment.COMMENTS AS "表注释",
	tabInfo.COLUMN_NAME AS "字段名",
	columnComment.COMMENT$ AS "字段注释",
	tabInfo.DATA_TYPE AS "字段类型",
	tabInfo.DATA_LENGTH AS "字段长度",
	(CASE WHEN EXISTS (
        SELECT 1 FROM USER_CONSTRAINTS uc JOIN USER_CONS_COLUMNS ucc
                                               ON uc.CONSTRAINT_NAME = ucc.CONSTRAINT_NAME
        WHERE uc.TABLE_NAME = tabInfo.TABLE_NAME AND ucc.COLUMN_NAME = tabInfo.COLUMN_NAME AND uc.CONSTRAINT_TYPE = 'P'
    ) THEN '是' ELSE '否' END) AS 是否主键,
	tabInfo.NULLABLE AS "可为空", 
	tabInfo.COLUMN_ID AS "字段排序", 
	tabInfo.DATA_DEFAULT AS "默认值"
FROM
	USER_TAB_COLUMNS AS tabInfo
LEFT JOIN USER_TAB_COMMENTS AS tabComment ON
	tabInfo.TABLE_NAME = tabComment.TABLE_NAME
LEFT JOIN SYSCOLUMNCOMMENTS AS columnComment ON
	tabInfo.COLUMN_NAME = columnComment.COLNAME
	AND tabInfo.TABLE_NAME = columnComment.TVNAME
	AND columnComment.SCHNAME LIKE '%DEV%'
WHERE
	tabInfo.TABLE_NAME = '你的表名' -- Where 条件内不得放入表所属,如果Where条件加入表所属,在关联的时候,如果字段缺少注释,这条记录就无法获取到表所属字段,你在 where 筛选一下,就会丢数据!
ORDER BY
	tabInfo.TABLE_NAME ASC,
	tabInfo.COLUMN_ID ASC,
	tabInfo.COLUMN_NAME ASC

完整表2 GPT 优化版:减少子查询 每次查询仅支持一个 SCHNAME

SELECT
    columnComment.SCHNAME AS "表模式所属",
    tabInfo.TABLE_NAME AS "表名",
    tabComment.COMMENTS AS "表注释",
    tabInfo.COLUMN_NAME AS "字段名",
    columnComment.COMMENT$ AS "字段注释",
    tabInfo.DATA_TYPE AS "字段类型",
    tabInfo.DATA_LENGTH AS "字段长度",
    CASE 
        WHEN pk_info.COLUMN_NAME IS NOT NULL THEN '是'
        ELSE '否'
    END AS "是否主键",
    tabInfo.NULLABLE AS "可为空", 
    tabInfo.COLUMN_ID AS "字段排序", 
    tabInfo.DATA_DEFAULT AS "默认值"
FROM
    USER_TAB_COLUMNS AS tabInfo
LEFT JOIN USER_TAB_COMMENTS AS tabComment 
    ON tabInfo.TABLE_NAME = tabComment.TABLE_NAME
LEFT JOIN SYSCOLUMNCOMMENTS AS columnComment 
    ON tabInfo.COLUMN_NAME = columnComment.COLNAME
    AND tabInfo.TABLE_NAME = columnComment.TVNAME
    AND columnComment.SCHNAME LIKE '%DEV%' -- 保险起见,担心不同的模式下 相同的表名、字段名的场景,又因为缺失字段注释,导致数据查询单张表信息丢失部分字段的情况
LEFT JOIN (
    SELECT 
        ucc.COLUMN_NAME, 
        uc.TABLE_NAME
    FROM 
        USER_CONSTRAINTS uc 
    JOIN 
        USER_CONS_COLUMNS ucc 
        ON uc.CONSTRAINT_NAME = ucc.CONSTRAINT_NAME
    WHERE 
        uc.CONSTRAINT_TYPE = 'P'
) pk_info ON 
    tabInfo.TABLE_NAME = pk_info.TABLE_NAME 
    AND tabInfo.COLUMN_NAME = pk_info.COLUMN_NAME
ORDER BY
    tabInfo.TABLE_NAME ASC,
    tabInfo.COLUMN_ID ASC,
    tabInfo.COLUMN_NAME ASC;

反推物理模型版1 每次查询仅支持一个 SCHNAME

-- 获取所有的表结构     
SELECT
        columnComment.SCHNAME AS "表模式所属",
        tabInfo.TABLE_NAME AS "表代码",
        tabComment.COMMENTS AS "表名称",
        tabComment.COMMENTS AS "表说明",
        tabInfo.COLUMN_NAME AS "字段代码",
        columnComment.COMMENT$ AS "字段名",
        columnComment.COMMENT$ AS "字段注释",
        tabInfo.DATA_TYPE AS "数据类型",
        tabInfo.DATA_LENGTH AS "数据长度",
        (CASE WHEN EXISTS (
        SELECT 1 FROM USER_CONSTRAINTS uc JOIN USER_CONS_COLUMNS ucc
                                               ON uc.CONSTRAINT_NAME = ucc.CONSTRAINT_NAME
        WHERE uc.TABLE_NAME = tabInfo.TABLE_NAME AND ucc.COLUMN_NAME = tabInfo.COLUMN_NAME AND uc.CONSTRAINT_TYPE = 'P'
    ) THEN '是' ELSE '否' END) AS "是否主键",
        tabInfo.NULLABLE AS "可为空", 
        tabInfo.DATA_DEFAULT AS "默认值",
        tabInfo.COLUMN_ID AS "字段排序"
FROM
        USER_TAB_COLUMNS AS tabInfo
LEFT JOIN USER_TAB_COMMENTS AS tabComment ON
        tabInfo.TABLE_NAME = tabComment.TABLE_NAME
LEFT JOIN SYSCOLUMNCOMMENTS AS columnComment ON
        tabInfo.COLUMN_NAME = columnComment.COLNAME
        AND tabInfo.TABLE_NAME = columnComment.TVNAME
        AND columnComment.SCHNAME LIKE '%DEV%'
WHERE
    tabInfo.TABLE_NAME LIKE '%DEFINE%'
ORDER BY
        tabInfo.TABLE_NAME  ASC,
        tabInfo.COLUMN_ID ASC,
        tabInfo.COLUMN_NAME ASC

反推物理模型版2 每次查询仅支持一个 SCHNAME

GPT 说通过连接查询,减少不必要的子查询。

SELECT
    columnComment.SCHNAME AS "表模式所属",
    tabInfo.TABLE_NAME AS "表代码",
    tabComment.COMMENTS AS "表名称",
    tabComment.COMMENTS AS "表说明",
    tabInfo.COLUMN_NAME AS "字段代码",
    columnComment.COMMENT$ AS "字段名",
    columnComment.COMMENT$ AS "字段注释",
    tabInfo.DATA_TYPE AS "数据类型",
    tabInfo.DATA_LENGTH AS "数据长度",
    CASE 
        WHEN pk_info.COLUMN_NAME IS NOT NULL THEN '是'
        ELSE '否'
    END AS "是否主键",
    tabInfo.NULLABLE AS "可为空", 
    tabInfo.DATA_DEFAULT AS "默认值",
    tabInfo.COLUMN_ID AS "字段排序"
FROM
    USER_TAB_COLUMNS AS tabInfo
LEFT JOIN USER_TAB_COMMENTS AS tabComment 
    ON tabInfo.TABLE_NAME = tabComment.TABLE_NAME
LEFT JOIN SYSCOLUMNCOMMENTS AS columnComment 
    ON tabInfo.COLUMN_NAME = columnComment.COLNAME
    AND tabInfo.TABLE_NAME = columnComment.TVNAME
    AND columnComment.SCHNAME LIKE '%DEV%'
LEFT JOIN (
    SELECT 
        ucc.COLUMN_NAME, 
        uc.TABLE_NAME
    FROM 
        USER_CONSTRAINTS uc 
    JOIN 
        USER_CONS_COLUMNS ucc 
        ON uc.CONSTRAINT_NAME = ucc.CONSTRAINT_NAME
    WHERE 
        uc.CONSTRAINT_TYPE = 'P'
) pk_info ON 
    tabInfo.TABLE_NAME = pk_info.TABLE_NAME 
    AND tabInfo.COLUMN_NAME = pk_info.COLUMN_NAME
WHERE
     tabInfo.TABLE_NAME LIKE '%DEFINE%'
ORDER BY
    tabInfo.TABLE_NAME ASC,
    tabInfo.COLUMN_ID ASC,
    tabInfo.COLUMN_NAME ASC;

表 中文注释长度检测SQL

SELECT 
    t.TABLE_NAME AS "表名",
    c.COMMENTS AS "表中文名",
    char_length(c.COMMENTS) AS "表中文长度"
FROM 
    ALL_TABLES t
LEFT JOIN 
    ALL_TAB_COMMENTS c
ON 
    t.OWNER = c.OWNER AND t.TABLE_NAME = c.TABLE_NAME
WHERE 
    t.OWNER LIKE '%DEV%'
ORDER BY 
    t.TABLE_NAME;

检测表 字段 长度超长约束检测

-- 检测字段长度超长约束检测
SELECT
    t.TABLE_NAME,
    c.COLUMN_NAME,
    char_length(c.COLUMN_NAME) as charLength,
    c.DATA_TYPE,
    c.DATA_LENGTH
FROM
    USER_TABLES t
        JOIN USER_TAB_COLUMNS c ON t.TABLE_NAME = c.TABLE_NAME
ORDER BY
    t.TABLE_NAME,
    c.COLUMN_ID;

检测字段列表 主键、非空标识

SELECT
    c.TABLE_NAME AS 表名,
    t.COLUMN_NAME AS 字段名,
    char_length(t.COLUMN_NAME) AS 字段名长度,
    t.DATA_TYPE AS 字段类型,
    t.DATA_LENGTH AS 字段类型长度,
    (CASE WHEN EXISTS (
        SELECT 1 FROM USER_CONSTRAINTS uc JOIN USER_CONS_COLUMNS ucc
                                               ON uc.CONSTRAINT_NAME = ucc.CONSTRAINT_NAME
        WHERE uc.TABLE_NAME = c.TABLE_NAME AND ucc.COLUMN_NAME = t.COLUMN_NAME AND uc.CONSTRAINT_TYPE = 'P'
    ) THEN 'Y' ELSE 'N' END) AS 是否主键,
    (CASE WHEN t.NULLABLE = 'N' THEN 'Y' ELSE 'N' END) AS 是否非空
FROM
    USER_TAB_COLUMNS t
        LEFT JOIN USER_TABLES c ON t.TABLE_NAME = c.TABLE_NAME
-- WHERE
	--t.TABLE_NAME LIKE '%DEFINE'
ORDER BY
    c.TABLE_NAME,
    t.COLUMN_ID

是的,达梦数据库支持修改字段类型。您可以使用ALTER TABLE语句来修改表中的字段类型,具体操作步骤如下:

  1. 使用ALTER TABLE语句修改字段类型,语法如下:
ALTER TABLE table_name MODIFY column_name new_data_type;

其中,table_name是要修改的表名,column_name是要修改的字段名,new_data_type是新的数据类型。

  1. 执行ALTER TABLE语句,例如:
ALTER TABLE employee MODIFY age INT;

这将把employee表中的age字段的数据类型从原来的VARCHAR修改为INT。

需要注意的是,修改字段类型可能会导致数据丢失或格式错误,因此在执行此操作之前,请务必备份您的数据。

请你告诉我Java如何返回对象是别名

在Java中,对象是通过引用传递的,而不是通过值传递的。因此,当您将一个对象赋值给另一个变量时,这两个变量将引用同一个对象,它们实际上是对象的别名。

例如,假设您有一个名为person的Person对象,并将其赋值给名为personAlias的另一个变量。这样做会创建一个别名,两个变量都引用同一个Person对象。以下是示例代码:Person person = new Person("John", 25); Person personAlias = person; // personAlias是对象person的别名

现在,person和personAlias都引用同一个Person对象。如果您更改其中一个变量的属性,则另一个变量也会反映出这些更改,因为它们引用同一个对象。以下是示例代码:personAlias.setName("Jane"); // 更改personAlias的名称 System.out.println(person.getName()); // 输出"Jane",因为person和personAlias引用同一个对象

因此,在Java中,返回一个对象实际上是返回一个对象的引用,这个引用可以被视为对象的别名。如果您将返回的对象赋值给另一个变量,则这两个变量将引用同一个对象,它们实际上是对象的别名。

一个实体叫name 我想让相应的结果是iname 请问使用jackson的包解决

是的,您可以使用Jackson库来解决这个问题。Jackson是一个流行的Java库,用于将Java对象序列化为JSON格式以及将JSON格式反序列化为Java对象。

为了让Jackson在序列化时将实体属性名"name"转换为"iname",您可以使用Jackson的注解@JsonProperty来指定属性名称。具体来说,您可以在实体类的属性上添加@JsonProperty注解,并指定要为该属性使用的JSON属性名称。以下是示例代码:public class MyEntity { @JsonProperty("iname") private String name; // 构造函数、getter和setter方法省略 }

在上面的示例代码中,@JsonProperty("iname")注解指定了JSON属性名称为"iname",因此在将MyEntity对象序列化为JSON时,属性"name"将被转换为"iname"。例如,如果您有一个名为myEntity的MyEntity对象,并将其序列化为JSON格式,它将如下所示:{ "iname": "John" }

注意,如果您使用Jackson进行反序列化操作,则需要确保JSON中的属性名称与Java实体类中的@JsonProperty注解指定的名称相匹配,否则反序列化操作可能会失败。

达梦数据库如何将字段的非空删除掉

在达梦数据库中,要将表中某个字段的非空限制删除,您可以使用ALTER TABLE语句来更改表结构。具体来说,您可以使用以下语法:ALTER TABLE table_name MODIFY column_name data_type [NULL|NOT NULL];

其中,table_name是要更改的表名,column_name是要更改的字段名,data_type是字段的数据类型,NULL或NOT NULL表示是否允许字段为空。

如果要将字段的非空限制删除,只需将NOT NULL更改为NULL即可。例如,如果要将表my_table中的字段my_column的非空限制删除,可以使用以下语句:ALTER TABLE my_table MODIFY my_column varchar(50) NULL;

执行上述语句后,my_column字段将不再具有非空限制。请注意,如果该字段中已经存在非空值,您需要先将这些值更改为NULL或其他允许的值,然后才能将非空限制删除。

达梦数据库8如何检测字段是否是主键、非空、

SELECT
	t.TABLE_NAME,
	c.COLUMN_NAME,
	char_length(c.COLUMN_NAME) AS charLength,
	c.DATA_TYPE,
	c.DATA_LENGTH
FROM
	USER_TABLES t
JOIN USER_TAB_COLUMNS c ON
	t.TABLE_NAME = c.TABLE_NAME
ORDER BY
	t.TABLE_NAME,
	c.COLUMN_ID;

请在此基础上修改

要检测达梦数据库8中表中字段是否是主键、非空或SELECT,您可以使用以下SQL查询语句:

SELECT
	t.TABLE_NAME,
	c.COLUMN_NAME,
	char_length(c.COLUMN_NAME) AS charLength,
	c.DATA_TYPE,
	c.DATA_LENGTH,
	(CASE
		WHEN EXISTS (
		SELECT
			1
		FROM
			USER_CONSTRAINTS uc
		JOIN USER_CONS_COLUMNS ucc ON
			uc.CONSTRAINT_NAME = ucc.CONSTRAINT_NAME
		WHERE
			uc.TABLE_NAME = t.TABLE_NAME
			AND ucc.COLUMN_NAME = c.COLUMN_NAME
			AND uc.CONSTRAINT_TYPE = 'P' ) THEN 'Y'
		ELSE 'N'
	END) AS isPrimaryKey,
	(CASE
		WHEN c.NULLABLE = 'N' THEN 'Y'
		ELSE 'N'
	END) AS isNotNull,
	(CASE
		WHEN c.COLUMN_NAME IN (
		SELECT
			COLUMN_NAME
		FROM
			USER_TAB_COLS
		WHERE
			TABLE_NAME = t.TABLE_NAME
			AND HIDDEN_COLUMN = 'NO' ) THEN 'Y'
		ELSE 'N'
	END) AS isSelectable
FROM
	USER_TABLES t
JOIN USER_TAB_COLUMNS c ON
	t.TABLE_NAME = c.TABLE_NAME
ORDER BY
	t.TABLE_NAME,
	c.COLUMN_ID;

上述查询语句基于您提供的查询语句,并添加了三个新的列:isPrimaryKey、isNotNull和isSelectable。这三个列分别指示每个字段是否是主键、非空或SELECT。

isPrimaryKey列使用子查询来检查每个字段是否是表的主键。如果字段是主键,则将该列设置为'Y',否则设置为'N'。

isNotNull列检查每个字段是否允许为空。如果字段不允许为空,则将该列设置为'Y',否则设置为'N'。

isSelectable列检查每个字段是否可以在SELECT语句中使用。如果字段是可选的,则将该列设置为'Y',否则设置为'N'。注意,此列还会检查隐藏列,因为隐藏列不能在SELECT语句中使用。

请注意,如果表中存在复合主键,则需要对子查询进行修改以检查所有主键列。此外,如果表中存在外键,则可以使用类似的方法检查外键列是否是非空的。

达梦数据库的 字段注释字段存储在那张表中?

在达梦数据库中,字段注释存储在系统表USER_COL_COMMENTS中。该表包含了所有用户定义的表和视图中的列的注释信息。您可以使用以下SQL查询语句来检索特定表的所有列的注释信息:

SELECT TABLE_NAME, COLUMN_NAME, COMMENTS FROM USER_COL_COMMENTS WHERE TABLE_NAME = 'your_table_name';

在上述语句中,将your_table_name替换为您要检索注释信息的表名即可。该查询将返回指定表的所有列的注释信息,包括列名、注释内容和所属表名。

如果您想查看所有表的列注释信息,可以使用以下查询语句:

SELECT TABLE_NAME, COLUMN_NAME, COMMENTS FROM USER_COL_COMMENTS;

上述查询将返回所有用户定义的表和视图中的列的注释信息,包括列名、注释内容和所属表名。

请你帮我列出 SELECT * from USER_TABLES 每个字段的含义

在达梦数据库中,USER_TABLES是一个系统表,用于存储当前用户拥有的所有表的信息。该表包含以下字段:

  • TABLE_NAME:表名。
  • TABLE_TYPE:表类型,包括“TABLE”(普通表)和“VIEW”(视图)。
  • TABLESPACE_NAME:表所在的表空间名称。
  • CLUSTER_NAME:表所在的簇名称。
  • IOT_NAME:表所在的索引有组织表名称。
  • STATUS:表的状态,包括“VALID”(有效)和“INVALID”(无效)。
  • PCT_FREE:表中空闲块的百分比。
  • PCT_USED:表中已使用块的百分比。
  • INI_TRANS:表中事务的初始数。
  • MAX_TRANS:表中事务的最大数。
  • INITIAL_EXTENT:表的初始大小。
  • NEXT_EXTENT:表的下一个大小。
  • MIN_EXTENTS:表的最小扩展数。
  • MAX_EXTENTS:表的最大扩展数。
  • PCT_INCREASE:表的扩展百分比。
  • FREELISTS:表的自由列表数。
  • FREELIST_GROUPS:表的自由列表组数。
  • LOGGING:表的日志记录模式,包括“YES”(记录)和“NO”(不记录)。
  • BACKED_UP:表是否已备份,包括“YES”(已备份)和“NO”(未备份)。
  • NUM_ROWS:表中的行数。
  • BLOCKS:表占用的块数。
  • EMPTY_BLOCKS:表中空块的数目。
  • AVG_SPACE:表的平均空间。
  • CHAIN_CNT:表中的行链接计数。
  • AVG_ROW_LEN:表的平均行长度。
  • AVG_SPACE_FREELIST_BLOCKS:自由列表块的平均空间。
  • NUM_FREELIST_BLOCKS:自由列表块的数量。
  • DEGREE:并发访问表的最大数。
  • INSTANCES:表的实例数。

以上是USER_TABLES表中的所有字段及其含义。注意,不同版本的达梦数据库可能会有所不同,您可以参考官方文档以获取更准确的信息。

请你帮我列出 SELECT * from USER_TABLES 每个字段的含义,以表格形式

好的,以下是USER_TABLES表中每个字段的含义,以表格形式呈现:

字段名含义
TABLE_NAME表名
TABLE_TYPE表类型,包括“TABLE”(普通表)和“VIEW”(视图)
TABLESPACE_NAME表所在的表空间名称
CLUSTER_NAME表所在的簇名称
IOT_NAME表所在的索引有组织表名称
STATUS表的状态,包括“VALID”(有效)和“INVALID”(无效)
PCT_FREE表中空闲块的百分比
PCT_USED表中已使用块的百分比
INI_TRANS表中事务的初始数
MAX_TRANS表中事务的最大数
INITIAL_EXTENT表的初始大小
NEXT_EXTENT表的下一个大小
MIN_EXTENTS表的最小扩展数
MAX_EXTENTS表的最大扩展数
PCT_INCREASE表的扩展百分比
FREELISTS表的自由列表数
FREELIST_GROUPS表的自由列表组数
LOGGING表的日志记录模式,包括“YES”(记录)和“NO”(不记录)
BACKED_UP表是否已备份,包括“YES”(已备份)和“NO”(未备份)
NUM_ROWS表中的行数
BLOCKS表占用的块数
EMPTY_BLOCKS表中空块的数目
AVG_SPACE表的平均空间
CHAIN_CNT表中的行链接计数
AVG_ROW_LEN表的平均行长度
AVG_SPACE_FREELIST_BLOCKS自由列表块的平均空间
NUM_FREELIST_BLOCKS自由列表块的数量
DEGREE并发访问表的最大数
INSTANCES表的实例数

希望这个表格能够帮助您更好地理解USER_TABLES表中每个字段的含义。

好的,以下是USER_TAB_COLUMNS表中每个字段的含义,以表格形式呈现:

字段名含义
TABLE_NAME列所属表的名称
COLUMN_NAME列的名称
DATA_TYPE列的数据类型
DATA_LENGTH列的数据长度
DATA_PRECISION数值列的精度
DATA_SCALE数值列的小数位数
NULLABLE列是否允许为空,包括“Y”(允许)和“N”(不允许)
COLUMN_ID列的序号
DEFAULT_LENGTH默认值的长度
DATA_DEFAULT列的默认值
NUM_DISTINCT列中不同值的数量
LOW_VALUE列中的最小值
HIGH_VALUE列中的最大值
DENSITY列中值的密度
NUM_NULLS列中的空值数量
NUM_BUCKETS直方图的桶数
LAST_ANALYZED列的最后分析日期
SAMPLE_SIZE用于直方图的样本大小
CHARACTER_SET_NAME列的字符集名称
CHAR_COL_DECL_LENGTH列的字符长度
GLOBAL_STATS是否为全局统计信息
USER_STATS是否为用户统计信息
AVG_COL_LEN列的平均长度
CHAR_LENGTH列的字符长度
CHAR_USED列的字符是否使用
V80_FMT_IMAGE列的V80格式图像
DATA_UPGRADED列的数据是否已升级

希望这个表格能够帮助您更好地理解USER_TAB_COLUMNS表中每个字段的含义。

脚本生成:

SELECT
    t.TABLE_NAME AS 表名,
    c.COLUMN_NAME AS 字段名,
    char_length(c.COLUMN_NAME) AS 字段名长度,
    zhushi.COMMENT$ AS 字段注释,
    c.DATA_TYPE AS 字段类型,
    c.DATA_LENGTH AS 字段类型长度,
    (CASE WHEN EXISTS (
        SELECT 1 FROM USER_CONSTRAINTS uc JOIN USER_CONS_COLUMNS ucc
                                               ON uc.CONSTRAINT_NAME = ucc.CONSTRAINT_NAME
        WHERE uc.TABLE_NAME = t.TABLE_NAME AND ucc.COLUMN_NAME = c.COLUMN_NAME AND uc.CONSTRAINT_TYPE = 'P'
    ) THEN '是' ELSE '否' END) AS 主键,
    (CASE WHEN c.NULLABLE = 'N' THEN '是' ELSE '否' END) AS 非空
FROM
    USER_TABLES t
        JOIN USER_TAB_COLUMNS c ON t.TABLE_NAME = c.TABLE_NAME
    LEFT JOIN SYSCOLUMNCOMMENTS AS zhushi ON zhushi.TVNAME = c.TABLE_NAME and zhushi.COLNAME = c.COLUMN_NAME
ORDER BY
    t.TABLE_NAME,
    c.COLUMN_ID
特殊说明:
上述文章均是作者实际操作后产出。烦请各位,请勿直接盗用!转载记得标注原文链接:www.zanglikun.com
第三方平台不会及时更新本文最新内容。如果发现本文资料不全,可访问本人的Java博客搜索:标题关键字。以获取最新全部资料 ❤