oracle UDT 有关数据字典的研究
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 有关数据字典的研究的更多相关文章
- oracle常用的数据字典
一.oracle数据字典主要由以下几种视图构成:1.user视图以user_为前缀,用来记录用户对象的信息 2.all视图以all_为前缀,用来记录用户对象的信息及被授权访问的对象信息 3.dba视图 ...
- 文献综述九:Oracle数据库性能模型的研究
一.基本信息 标题:Oracle数据库性能模型的研究 时间:2018 出版源:数字技术与应用 文件分类:对框架的研究 二.研究背景 帮助运维人员分析数据库性能,发现问题,指导调优. 三.具体内容 文献 ...
- Oracle学习笔记—数据字典和常用命令(转载)
转载自: oracle常用数据字典和SQL语句总结 Oracle常用命令大全(很有用,做笔记) 一.Oracle数据字典 数据字典是Oracle存放有关数据库信息的地方,其用途是用来描述数据的.比如一 ...
- Oracle中的数据字典技术及常用数据字典总结
一.Oracle数据字典 数据字典是Oracle存放有关数据库信息的地方,其用途是用来描述数据的.比如一个表的创建者信息,创建时间信息,所属表空间信息,用户访问权限信息等.当用户在对数据库中的数据进行 ...
- (转)oracle常用的数据字典
一.oracle数据字典主要由以下几种视图构成: .user视图 以user_为前缀,用来记录用户对象的信息 .all视图 以all_为前缀,用来记录用户对象的信息及被授权访问的对象信息 .dba视图 ...
- Oracle的update语句优化研究
最近研究sql优化,以下文章转自互联网: 1. 语法 单表:UPDATE 表名称 SET 列名称 = 新值 WHERE 列名称 = 某值 如:update t_join_situation s ...
- Oracle 中常用数据字典大总结
原文出处:小宝马的爸爸 - 梦想的家园 前面呢,也断断续续的介绍了一些诸如 Sql*Plus 等等关于 Oracle 的基本的内容, 对于 Oracle 这样的大型数据库呢,自身的运行和维护也是个不得 ...
- Maclean Liu对Oracle Database 12c新特性研究汇总
Maclean Liu关于DB 12c新特性的研究文章如下: [Oracle Database 12c新特性] In-Database Archiving数据库内归档 [Oracle Database ...
- Oracle 11g 体系结构--数据字典
DD:存放数据库内部信息的地方,用于描述数据库内部的运行和管理情况. Oracle数据字典的名称由前缀和后缀组成,使用_连接,含义说明如下: dba_:包含数据库实例的所有对象信息 v$_:当前实例的 ...
随机推荐
- WebGL学习之法线贴图
实际效果请看demo:纹理贴图 为了增加额外细节,提升真实感,我们使用了漫反射贴图和高光贴图,它们都是向三角形进行附加纹理.但是从光的视角来看是表面法线向量使表面被视为平坦光滑的表面.以光照算法的视角 ...
- 在 Mac OS X 10.9 搭建 Python3 科学计算环境
安装 Homebrew 使用 Homebrew 管理 Python 版本.在 Terminal/iTerm2 输入: $ ruby -e "$(curl -fsSL https://raw. ...
- gitlab忘记管理员密码
gitlab忘记密码后破解! gitlab-rails console production :> user = User.).first irb(main)::> user.passwo ...
- Spring学习笔记(五)—— Spring整合JDBC
一.Spring对JDBC的支持 Spring提供了很多模板整合Dao技术 与JDBC的整合中,Spring中提供了一个可以操作数据库的对象——JdbcTemplate,该对象封装了JDBC技术,与D ...
- 【转】Caused by: Action class [com.struts.action.xxxAction] not found 解决方法
刚学习Struts,自己写了个简单程序,一启动tomcat就报错,但是我按着ctrl点击struts.xml中com.struts.action.LoginAction也能定位到LoginAction ...
- linux下的小命令
(1) 查看服务器的IP信息 ip add show ifconfig (2) 操作网卡命令(重启网络和启用网卡) cleasystemctl restart network systemctl st ...
- win10系统常用操作
1.打开控制面板 (1)选中“此电脑”,右键选择“属性”. (2)可见 控制面板主页 2.设置环境变量和系统变量 (1)选中“此电脑”,右键选择“属性”. (2)可见 控制面板主页 (3)点击高级系统 ...
- C++_异常8-异常、类和基础
异常.类和继承以三种方式相互关联. 首先,可以像标准C++库所做的那样,从一个异常类派生出另一个. 其次,可以在类定义中嵌套异常类声明来组合异常. 第三,这种嵌套声明本身可以被继承,还可以作为基类. ...
- css 之 BFC
1,定义 BFC为块级格式化上下文,也就是一块区域内的封闭空间,里面元素无论怎么样,都不会影响外部元素. 2,触发条件 html 根元素 display的值为 inline-block.table-c ...
- 【研究】ms17-010永恒之蓝漏洞复现
1 永恒之蓝漏洞复现(ms17-010) 1.1 漏洞描述: Eternalblue通过TCP端口445和139来利用SMBv1和NBT中的远程代码执行漏洞,恶意代码会扫描开放44 ...