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

Oracle 查看所有表的字段名、数据类型及长度

1.只查看某个特定表的字段名
SELECT column_name, data_type, data_length
FROM user_tab_columns
WHERE table_name = '你的表名' -- 注意大写
ORDER BY column_id;
2.查看当前用户下所有表的字段名
SELECT table_name, column_name, data_type, data_length
FROM user_tab_columns
ORDER BY table_name, column_id;

说明:
table_name: 表名
column_name: 字段名
data_type: 数据类型(如 VARCHAR2, NUMBER)
data_length: 数据长度

若需要格式化字段展示,可使用如下SQL:

SELECT table_name || '.' || column_name AS full_column_name,data_type || '(' || data_length || ')' AS data_type_length
FROM user_tab_columns
ORDER BY table_name, column_id;
3.查看所有用户的表字段名(你有权限访问的)
SELECT owner, table_name, column_name, data_type, data_length
FROM all_tab_columns
ORDER BY owner, table_name, column_id;
4.查看数据库中所有表的字段名(需要 DBA 权限)
SELECT owner, table_name, column_name, data_type, data_length
FROM dba_tab_columns
ORDER BY owner, table_name, column_id;
5.查看当前用户下字段名、数据类型及长度
SELECT table_name,column_name,-- 格式化数据类型 + 长度/精度CASE WHEN data_type IN ('CHAR', 'VARCHAR2', 'NCHAR', 'NVARCHAR2') THEN data_type || '(' || CASE char_used WHEN 'C' THEN char_length || ' CHAR'WHEN 'B' THEN data_length || ' BYTE'END || ')'WHEN data_type = 'NUMBER' THEN CASE WHEN data_precision IS NULL THEN 'NUMBER' WHEN data_scale = 0 THEN 'NUMBER(' || data_precision || ')' ELSE 'NUMBER(' || data_precision || ',' || data_scale || ')'ENDELSE data_typeEND AS formatted_data_type,-- 实际存储长度(以字节为单位)data_length AS actual_length_bytesFROM user_tab_columns
ORDER BY table_name, column_id;

若需格式化显示字段长度,可使用如下SQL:

SELECT table_name,column_name,-- 格式化数据类型(去掉 BYTE/CHAR)CASE WHEN data_type IN ('CHAR', 'VARCHAR2', 'NCHAR', 'NVARCHAR2') THEN data_type || '(' || CASE char_used WHEN 'C' THEN char_lengthWHEN 'B' THEN data_lengthEND || ')'WHEN data_type = 'NUMBER' THEN CASE WHEN data_precision IS NULL THEN 'NUMBER' WHEN data_scale = 0 THEN 'NUMBER(' || data_precision || ')' ELSE 'NUMBER(' || data_precision || ',' || data_scale || ')'ENDELSE data_typeEND AS formatted_data_type,-- 实际字节长度(定义层面上的)data_length AS actual_length_bytesFROM user_tab_columns
ORDER BY table_name, column_id;
6.查询前用户下所有表的字段名称、字段长度、是否允许为空
SELECT table_name,column_name,data_type,CASE WHEN data_type IN ('CHAR', 'VARCHAR2', 'NCHAR', 'NVARCHAR2') THENchar_lengthWHEN data_type = 'NUMBER' THENdata_precisionELSEdata_lengthEND AS length,CASE WHEN nullable = 'Y' THEN '是'ELSE '否'END AS is_nullable
FROM user_tab_columns
ORDER BY table_name, column_id;

若需格式化显示长度,可使用如下SQL:

SELECT table_name,column_name,CASE WHEN data_type IN ('CHAR', 'VARCHAR2', 'NCHAR', 'NVARCHAR2') THEN data_type || '(' || CASE char_used WHEN 'C' THEN char_length WHEN 'B' THEN data_length ELSE data_length END || ')'WHEN data_type = 'NUMBER' THEN CASE WHEN data_precision IS NULL THEN 'NUMBER'WHEN data_scale = 0 THEN 'NUMBER(' || data_precision || ')'ELSE 'NUMBER(' || data_precision || ',' || data_scale || ')'ENDELSE data_typeEND AS data_type_length,CASE WHEN nullable = 'Y' THEN '是'ELSE '否'END AS is_nullable
FROM user_tab_columns
ORDER BY table_name, column_id;

相关文章:

  • Android软件适配遥控器需求-案例经验分享
  • opencv的setDefaultAllocator使用
  • MySQL 数据处理函数全面详解
  • PCB设计实践(三十六)PCB设计新手系统性注意事项总结
  • 自演进多智能体在医疗临床诊疗动态场景中的应用
  • ATX电源
  • 关于Github可连接时长问题的实验
  • html中的盒子标签div标签,有序列表,无序列表
  • Nginx转发中相对路径资源302问题的分析与解决
  • Keepalived+LVS高可用集群
  • 基于双目视觉的厂房车间立体空间匹配算法的研究与实现
  • ResourceDictionary和ResourceDictionary.MergedDictionaries区别
  • 如何从网页源码中批量提取关键信息,一种实用方案
  • Qt信号和槽机制详解
  • 显卡、CUDA、cuDNN及PyTorch-GPU安装使用全指南
  • C++ 对象特性
  • 80Qt窗口_对话框
  • Java-49 深入浅出 Tomcat 手写 Tomcat 实现【02】HttpServlet Request RequestProcessor
  • 持续集成 CI/CD-Jenkins持续集成GitLab项目打包docker镜像推送k8s集群并部署至rancher
  • 【AI Study】第三天,NumPy(4)- 核心功能
  • 政府网站建设参考书/四川seo平台
  • 小白怎么做网页/上海建站seo
  • 广元专业高端网站建设/淘宝店铺运营
  • ps怎么做网站图片/建站公司哪家好
  • 海外推广代理渠道/seo案例分析及解析
  • 怎么做网站导航栏/如何开发网站