一、type / create or repalce type 区别联系 相同: 可用关键字create type 或者直接用type定义自定义类型, 区别: create type 变量 as table of 类型 -- create type 变量 as object( 字段1 类型1, 字段2 类型2 ); -------------------------- type 变量 is table of 类型 -- type 变量 is record( 字段1 类型1, 字段2 类型2 ); 区别是 用 create 后面用 as , 若直接用 type 后面用 is create 是创 object , 而 type 是创 record . 另 type用在语句块中,而create 是的独立的. 一般定义object的语法: 用 create type 自定义表类型A as table of 自定义Object类型A 和 create type 自定义Object类型A as object( 字段1 类型1, 字段2 类型2 ); 与 type 自定义表类型B is table of 类型 和 type 自定义Object类型B is record( 字段1 类型1, 字段2 类型2 ); 自定义类型一般分为两中,object类型和table类型.object类似于一个recored,可以表示一个表的一行数据, object的字段就相当与表的字段. 自定义的table类型需要用的已经定义好的object类型. 数组怎么定义呢: type typename is table of typedefine index by binary_integer;//若去掉index by binary_integer,则需要每次自动扩展了 | CREATE OR REPLACE TYPE typename AS VARRAY(100) OF typedefine;
|
二:type record用法概述 type 自定义Object类型B is record( 字段1 类型1, 字段2 类型2 ); 2.1:什么是记录(Record)?
由单行多列的标量构成的复合结构。可以看做是一种用户自定义数据类型。组成类似于多维数组。
将一个或多个标量封装成一个对象进行操作。是一种临时复合对象类型。 记录可以直接赋值。RECORD1 :=RECORD2;
记录不可以整体比较.
记录不可以整体判断为空。 2.2:%ROWTYPE和记录(Record)?
请区别%ROWTYPE和记录(Record)类型。%ROWTYPE可以说是Record的升级简化版。
区别在与前者结构为表结构,后者为自定义结构。二者在使用上没有很大区别。前者方便,后者灵活。在实际中根据情况来具体决定使用。
Record + PL/SQL表可以进行数据的多行多列存储。
三:工作实例 1、 CREATE OR REPLACE TYPE "TYPE_COLUMN"
IS OBJECT
(
STR_COLUMN VARCHAR2(30)
) 2、 CREATE OR REPLACE TYPE "TYPE_TABLE_SPLIT_COLUMNS"
AS table of TYPE_COLUMN
/
3、 CREATE OR REPLACE TYPE "TYPE_TB_RPT_SECU_DAILY_EXT"
AS table of TYPE_RPT_SECU_DAILY_EXT
/
|