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$_:当前实例的 ...
随机推荐
- 【spring】InitializingBean接口
apollo 源码中有这么一个类 public class ReleaseMessageScanner implements InitializingBean @Override public voi ...
- #首行输入数n,接下来输入n行数,以空格隔开
#首行输入数n,接下来输入n行数,以空格隔开 n = int(raw_input())# print nL = []for i in range(n): L.append([int(x) for x ...
- Docker - 使用 Nexus3 搭设私有 NuGet 仓库
目录 前言 NuGet Nexus 私有仓库 说明 安装 Nexus 拉取 Nexus 镜像 运行 Nexus Nexus NuGet 仓库简单使用 Nexus 默认帐号 Repositories 上 ...
- php文件下载方法收藏(附js下载技巧)
function down($url){ header('Content-Description: File Transfer'); header('Content-Type: application ...
- 使用window.name 进行数据跨域传递
其中要点, Stpe1,浏览器在Iframe中加载一个异域的页面,这个页面返回 <script>window.name="任何数据"</script>,这时 ...
- MYSQL 面试常见问题汇总
转自: https://blog.csdn.net/u011010851/article/details/80074550 Q1:主键,外键,超键,候选键:主键 对表中数据进行唯一标识的数据列的 ...
- Qt 学习之路 2(43):QStringListModel
Qt 学习之路 2(43):QStringListModel 豆子 2013年2月13日 Qt 学习之路 2 38条评论 上一章我们已经了解到有关 list.table 和 tree 三个最常用的视图 ...
- 多气体组分DEM流动的DMP并行内存错误
今天踩到一个坑.调DEM反应的时候,气体需要设置为多组分,这时就不能用 DES_INTERP_ON = .T. DES_INTERP_SCHEME = 'GARG_2012' 这个差值格式了,否则DM ...
- 利用Python将文件进行分类整理
利用Python将文件进行分类整理 功能 根据一个文件夹中的文件类型建立相应的文件夹,将同一种类型的文件放在一个文件夹中. 实现思路 主要用到 os 和 shutil 两个库,os 用来获取文件夹中的 ...
- windows系统如何校验MD5
需要首先安装openssl软件. 若安装了git for windows,则默认会带有openssl,不需要单独安装了. 打开git bash控制台,执行如下命令即可—— openssl md5 pa ...