知识大全 Oracle中构造包含数组的表

Posted

篇首语:刑天舞干戚,猛志固常在。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 Oracle中构造包含数组的表相关的知识,希望对你有一定的参考价值。

Oracle中构造包含数组的表  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!

  面向对象数据库中存储的是对象 对象有自己的行为和属性

  行为体现为类型的函数或者过程 属性体现为字段

  对象表确实有优势吗?

  基于抽象类型创建关系表 和其他表的创建一样

  基于抽象类型创建对象表 create table 对象表名 of 抽象数据类型

  抽象类型可以复用 也就是说一个抽象类型中可以包含另一个抽象类型做为一个字段

  构造函数是默认创造的 参数包括类型的字段

  如果要插入数据到对象表 有两种方式

  一种就是insert into tablename values(字段 字段 );

  另一种就是我们如果想直接用构造函数构造一个大字段直接插入

  这时候不需要values 但必须用slect:

  insert into tablename select 构造函数(字段 字段 ) from xxx;

  创建带方法的类型

  首先说方法的定义 如果有返回值 用member function

  没有返回值 member procedure

  ****以后再说

  可变数组

  声明一下Oralce的oop中使用下列的对象类型

  ·抽象数据类型

  ·可变数组

  ·嵌套表

  ·对象表

  ·对象视图

  可变数组会根据存储数据的大小来真正存储数据而不是占用固定的空间 这类似

  Java中的ArraryList类

  关系型理论中不允许一个表中的一个记录中存储其他表记录

  而Oracle中是支持的 这不是违反了数据的原子性原则吗?

  但是这样有好处

  在用户查询的时候比两个表进行关联查询效率高

  所以说可变数组也可以做为一条记录的一个字段被存储在一个表中

  当然这是违反关系数据理论的

  创建可变数组的例子

  create or replace type mingxitype as object

  (

  goodsid varchar( )

  incount int

  providerid varchar( )

  );

  /

  create or replace type arrmingxitype as varray( ) of mingxitype;

  /

  create table instock

  (

  orderid int primary key

  indate date

  mingxi arrmingxitype

  )

  /

  insert into instock

  values( to_date( yyyy mm dd )

  arrmingxitype(mingxitype( so )

  mingxitype( j )

  mingxitype( i )

  )

  )

  /

  //table函数可以把可变数组转换为关系表的形式显示出来

  select * from table(select s mingxi from instock s where orderid= )

  GOODSID            INCOUNT PROVIDERID

  

                        so

                        j

                        i

  可变数组的元素不能单独改 必须全部改

  所以可变数组适合的场合是

  用户不会修改的数据 历史性的数据就适合用可变数组

  删除数据是通用的

  //可变数组的基类型是用户定义的 所以这个基类型也可以是一般数据类型 比如int;

cha138/Article/program/Oracle/201311/18046

相关参考

知识大全 在.Net中使用Oracle的表类型和对象类型

在.Net中使用Oracle的表类型和对象类型  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  在

知识大全 Oracle中如何把表和索引放在不同的表空间里

Oracle中如何把表和索引放在不同的表空间里  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!Ora

知识大全 oracle提高查询效率

  ()选择最有效率的表名顺序(只在基于规则的优化器中有效) ORACLE的解析器按照从右到左的顺序处理FROM子句中的表名FROM子句中写在最后的表(基础表drivingtable)将被最先处理在F

知识大全 oracle性能34条优化技巧

  ()选择最有效率的表名顺序(只在基于规则的优化器中有效)  ORACLE的解析器按照从右到左的顺序处理FROM子句中的表名FROM子句中写在最后的表(基础表drivingtable)将被最先处理在

知识大全 php二分法查找数组是否包含某一元素

  二分法查找数组是否包含某一元素兼容正反序代码实现 代码如下:<?php$searchValue=(int)$_GET[key];functionsearch(array$array

知识大全 Oracle恢复误操作的表

Oracle恢复误操作的表  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  Oracle会把被删除

知识大全 ORACLE删除带有空格的表

ORACLE删除带有空格的表  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!在用powerdesig

知识大全 更改Oracle数据库表的表空间

更改Oracle数据库表的表空间  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  在Oracle数

知识大全 Oracle快速删除数据字典管理的表空间

Oracle快速删除数据字典管理的表空间  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  我的测试

知识大全 Oracle存储过程返回数组的方法

Oracle存储过程返回数组的方法  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  oracle存