1、数据及类型准备

创建了一个自定义类型

create or replace type addr_type as object(
street varchar2(30);
city varchar2(30);
state varchar2(30);
country varchar2(30)
)

这里的 addr_type  是一个用户自定义类型 UDT

create table r7.cust(
id number,
addr r7.addr_type
)

创建了一个表,其中addr这一列使用了刚才定义的类型。

2、数据字典中关于UTD的摸索过程

2.1 通过如下语句获取某个schema下的所有表明及其对应的objid

select o.name,t.obj# from sys.tab$ t,sys.obj$ o,sys.user$ u where t.obj#=o.obj# and o.owner#=u.user# and u.name='r7';
得到如下结果:

2.2、查询出 cust表的objid 为 75198

通过如下语句得到这个表的所有列的内容
select * from sys.col$ where obj#=75178;

2.3、这里可以看到 ADDR列的 type 为121

通过如下语句得到该列的类型的OID
select * from sys.coltype$ where obj#=75198 and col#=2;

这里得到该类型有4个属性 INTCOLS=4

表 sys.coltype$ 中的flags 解释如下

2.4、得到的该类型的TOID,

然后通过如下语句得到该类型的名称
select * from sys.obj$ where oid$='42FA04xxxxx';

2.5、这样就能得到这个列对应的类型名称,

然后可以通过owner# 以及 sys.user# 得到这个类型对应的schema

组合起来
select o.name, u.name from sys.col$ c,sys.coltype$ ct,sys.obj$ o,sys.user$ u where
c.obj#=ct.obj# and c.obj#=75198 and c.type#=121 and c.col#=ct.col# and ct.toid=o.oid$ and o.owner#=u.user#;

2.6、然后通过如下语句得到该类型的相关属性

select * from sys.type$ where tvoid='42FA04xxxxx';

可以得到他有4个属性,这里 type_code 108 表示object 122 表示collection

2.7、结合2.2中的自定义类型的各个列的类型 就可以完整的复原整个语句

如下 insert into r7.cust(id,addr) values(1,r7.addr_type('a','b','c','d'));

oracle UDT 有关数据字典的研究的更多相关文章

  1. oracle常用的数据字典

    一.oracle数据字典主要由以下几种视图构成:1.user视图以user_为前缀,用来记录用户对象的信息 2.all视图以all_为前缀,用来记录用户对象的信息及被授权访问的对象信息 3.dba视图 ...

  2. 文献综述九:Oracle数据库性能模型的研究

    一.基本信息 标题:Oracle数据库性能模型的研究 时间:2018 出版源:数字技术与应用 文件分类:对框架的研究 二.研究背景 帮助运维人员分析数据库性能,发现问题,指导调优. 三.具体内容 文献 ...

  3. Oracle学习笔记—数据字典和常用命令(转载)

    转载自: oracle常用数据字典和SQL语句总结 Oracle常用命令大全(很有用,做笔记) 一.Oracle数据字典 数据字典是Oracle存放有关数据库信息的地方,其用途是用来描述数据的.比如一 ...

  4. Oracle中的数据字典技术及常用数据字典总结

    一.Oracle数据字典 数据字典是Oracle存放有关数据库信息的地方,其用途是用来描述数据的.比如一个表的创建者信息,创建时间信息,所属表空间信息,用户访问权限信息等.当用户在对数据库中的数据进行 ...

  5. (转)oracle常用的数据字典

    一.oracle数据字典主要由以下几种视图构成: .user视图 以user_为前缀,用来记录用户对象的信息 .all视图 以all_为前缀,用来记录用户对象的信息及被授权访问的对象信息 .dba视图 ...

  6. Oracle的update语句优化研究

    最近研究sql优化,以下文章转自互联网: 1.     语法 单表:UPDATE 表名称 SET 列名称 = 新值 WHERE 列名称 = 某值 如:update t_join_situation s ...

  7. Oracle 中常用数据字典大总结

    原文出处:小宝马的爸爸 - 梦想的家园 前面呢,也断断续续的介绍了一些诸如 Sql*Plus 等等关于 Oracle 的基本的内容, 对于 Oracle 这样的大型数据库呢,自身的运行和维护也是个不得 ...

  8. Maclean Liu对Oracle Database 12c新特性研究汇总

    Maclean Liu关于DB 12c新特性的研究文章如下: [Oracle Database 12c新特性] In-Database Archiving数据库内归档 [Oracle Database ...

  9. Oracle 11g 体系结构--数据字典

    DD:存放数据库内部信息的地方,用于描述数据库内部的运行和管理情况. Oracle数据字典的名称由前缀和后缀组成,使用_连接,含义说明如下: dba_:包含数据库实例的所有对象信息 v$_:当前实例的 ...

随机推荐

  1. 基于SSH协议clone GitHub远端仓库到本地-git

    经常逛 GitHub 的可能都知道,在 clone 远端仓库的时候,会有两个选项,如下图: 首先我们来说明一下两种方式的区别. 使用 HTTPS url 克隆对初学者来说会比较方便,复制HTTPS u ...

  2. [转]An STL compliant sorted vector-源码示例

    原文地址:http://www.codeproject.com/Articles/3217/An-STL-compliant-sorted-vector 最近在看sorted vectored的一些东 ...

  3. js 原生JS实现轮播图

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  4. Qt 学习之路 2(62):保存 XML

    Home / Qt 学习之路 2 / Qt 学习之路 2(62):保存 XML Qt 学习之路 2(62):保存 XML  豆子  2013年8月26日  Qt 学习之路 2  9条评论 前面几章我们 ...

  5. web图标icon tomcat图标icon

    有时候我们需要更改项目图标为自己的,毕竟tomcat的小猫图标用着不得劲. 你看打开百度等网站时,在地址栏前面就会出现一个蓝色的熊掌状图标或者其他的样式的图标,如果在桌面新建此链接的快捷方式,则桌面图 ...

  6. 包括ES6在内的数组操作(待更)

    下面是我对ES6和古老的JS(ES3)一些数组操作的总结,附带了一些我曾经用上的. map处有待更内容. 贴一下有借鉴的网站:https://segmentfault.com/a/1190000002 ...

  7. samtools软件作用

    samtools的说明文档:http://samtools.sourceforge.net/samtools.shtml samtools是一个用于操作sam和bam文件的工具合集,包含有许多命令.以 ...

  8. linux 检测服务器端口工具

    #nmp# nmap 127.0.0.1 #netstat# netstat -anlp | grep 22 #telnet# 服务器端口即使处于监听状态,但是防火墙iptables屏蔽了该端口,是无 ...

  9. 【贪心】洛谷 P1199 三国游戏 题解

     这个题尽管题目长,主要还是证明贪心的正确性(与博弈关系不大) 题目描述 小涵很喜欢电脑游戏,这些天他正在玩一个叫做<三国>的游戏. 在游戏中,小涵和计算机各执一方,组建各自的军队进行对战 ...

  10. python的下划线

    首先是单下划线开头,这个被常用于模块中,在一个模块中以单下划线开头的变量和函数被默认当作内部函数,如果使用 from a_module import * 导入时,这部分变量和函数不会被导入.不过值得注 ...