"Oracle SQL 用于提取表结构的脚本" 这个脚本是Oracle SQL查询,主要用于从数据库中提取特定表的结构信息。作者Richard Wang在2011年8月30日创建了这个功能,版本号为0.1。脚本的主要目标是获取表的名称、列ID、列名、数据类型、主键列和是否可为空的信息。 首先,查询从DUAL表中返回基础列名,如`Table_Name`, `Column_ID`, `Column_Name`, `Data_Type`, `PK_Column`, 和 `Nullable`。`DUAL`是Oracle中的一个特殊表,通常用于测试或单行查询。 接下来,脚本通过`UNION ALL`操作将结果与从`ALL_TAB_COLUMNS`视图中选择的数据合并。`ALL_TAB_COLUMNS`视图包含了数据库中所有用户可访问的表的所有列信息。在这个查询中,通过`LEFT OUTER JOIN`与`USER_CONSTRAINTS`和`USER_CONS_COLUMNS`视图联接,以获取有关主键信息。这使得脚本能标识出哪些列是主键列。 查询中的一些关键部分包括: 1. `lower(all_c.table_name)`:将表名转换为小写,以确保一致性。 2. `decode(all_c.data_type, 'NUMBER', ...)`:根据数据类型处理不同的格式,例如,对于数字类型,它会显示精度和刻度,对于字符类型,会显示长度。 3. `owner not like '%SYS%'`:排除属于系统用户的表。 4. `table_name = upper('V_CHL_PORTFOLIO')`:指定要查询的表名(此处为大写)。 5. `order by table_name, column_id, column_name`:按表名、列ID和列名排序结果。 最后,脚本中还包含两个额外的查询,分别用于获取所有名为'CIS_INF_PARM_VALUE'的表的列信息,以及所有包含"DELIV"子串的表名。 这个脚本对于数据库管理员、开发人员和数据分析师来说非常有用,他们需要快速了解表的结构,特别是当处理大量表时,可以自动化提取这些信息,提高工作效率。
* Function : to extract the structure of a table *
* Author : Richard Wang *
* Date : 2011-08-30 *
* Version : 0.1 *
------------------------------------------------------------------------------*/
select 'Table_Name' table_name
--,'Column_ID' column_id
,0 column_id
,'Column_Name' column_name
,'Data_Type' data_Type
,'PK_Column' PK_Column
,'Nullable' nullable
from DUAL
union all
select distinct
lower(all_c.table_name) table_name
--,(case
-- when column_id < 10 then '0' || to_char(column_id)
-- when column_id < 100 then to_char(column_id)
-- when column_id > 100 then 'H' || substrb(to_char(column_id),2,1)
-- else '**'
-- end ) column_id
,all_c.column_id column_id
,lower(all_c.column_name) column_name
,lower((case all_c.data_type
when 'NUMBER'
下载后可阅读完整内容,剩余2页未读,立即下载
- 粉丝: 2
- 资源: 19
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- C++标准程序库:权威指南
- Java解惑:奇数判断误区与改进方法
- C++编程必读:20种设计模式详解与实战
- LM3S8962微控制器数据手册
- 51单片机C语言实战教程:从入门到精通
- Spring3.0权威指南:JavaEE6实战
- Win32多线程程序设计详解
- Lucene2.9.1开发全攻略:从环境配置到索引创建
- 内存虚拟硬盘技术:提升电脑速度的秘密武器
- Java操作数据库:保存与显示图片到数据库及页面
- ISO14001:2004环境管理体系要求详解
- ShopExV4.8二次开发详解
- 企业形象与产品推广一站式网站建设技术方案揭秘
- Shopex二次开发:触发器与控制器重定向技术详解
- FPGA开发实战指南:创新设计与进阶技巧
- ShopExV4.8二次开发入门:解决升级问题与功能扩展