You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何修改Oracle查询语句使其仅返回带UNIQUE约束的数值型列?

修改后的Oracle查询语句

以下是调整后的查询语句,仅返回带有UNIQUE约束、数据类型为NUMBER/BINARY_FLOAT/BINARY_DOUBLE/FLOAT且data_precision非空的列信息:

SELECT col.owner as schema_name,
       col.table_name,
       col.column_name,
       col.data_type,
       col.data_precision
FROM sys.dba_tab_cols col
JOIN sys.dba_tables tab 
  ON col.owner = tab.owner
  AND col.table_name = tab.table_name
-- 关联约束与列的映射表
JOIN sys.dba_cons_columns cc
  ON col.owner = cc.owner
  AND col.table_name = cc.table_name
  AND col.column_name = cc.column_name
-- 关联约束表,筛选唯一约束类型
JOIN sys.dba_constraints c
  ON cc.owner = c.owner
  AND cc.constraint_name = c.constraint_name
  AND c.constraint_type = 'U'
WHERE col.data_type IN ('NUMBER','BINARY_FLOAT', 'BINARY_DOUBLE','FLOAT')
  AND col.data_precision IS NOT NULL 
ORDER BY col.owner,
         col.table_name,
         col.column_id;

核心修改说明

  • 新增sys.dba_cons_columns关联:该视图记录了约束与对应列的绑定关系,用于定位约束关联的具体列
  • 新增sys.dba_constraints关联:通过constraint_type='U'精准筛选出唯一约束(U代表Unique)
  • 保持原查询的基础过滤条件,确保只返回指定数据类型且data_precision非空的列

内容的提问来源于stack exchange,提问作者Achiral

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.12 23:52:39