标量类型是经过预定义的,利用这些类型可以衍生出一些复合类型。主要有记录、 表。
记录,可以看作是一组标量的组合结构,它的声明方式如下:
TYPE record_type_name IS RECORD
( filed1 type1 [NOT NULL] [:=expr1]
.......
filedn typen [NOT NULL] [:=exprn] )
其中,record_type_name是记录类型的名字。(是不是看着象 CREATE TABLE?......)引用时必须定义相关的变量,记录只是TYPE,不是VARIABLE。
表,不是物理存储数据的表,在这里是一种变量类型,也称为PL/SQL表,它 类似于C语言中的数组,在处理方式上也相似。它的声明方式如下:
TYPE table_type_name IS TABLE OF scalar_type INDEX BY BINARY_INTENER;
其中,table_type_name是类型的名字,scalar_type 是一种标量类型的类型声明。引用时也必须定义相关的变量。表和数组不同,表有两列,KEY和VALUE,KEY就是定义时声明的 BINARY_INTENER,VALUE就是定义时声明的scalar_type。
三、引用(REFERENCE)
在PL/SQL8.0之前,只有一种类型--REF CURSOR,也就是游标。它的定义较为简单,
CURSOR cursor_name IS select .....from.....;
在PL/SQL8.0之后,引入了REF类型,它指向一个对象。这种类型将单 独讲解。(等我弄明白再说,免得在高人面前......)
四、LOB型
LOB变量主要是用来存储大量数据的数据库字段,最大可以存储4G字节的内容。主要有:
CLOB:和ORACLE7中的LONG类型相似,存储单字节字符数据。(别用来存中文)
NCLOB:用来存储定宽多字节字符数据。
BLOB:和LONG RAW相似,用来存储无结构的二进制数据。
BFILE:它用来允许ORACLE对数据库外存储的大型二进制文本进行只读形式的访问。
Oracle 9i共提供了16种标量数据类型表:
| 名称 | 含义 |
| Char | 用于描述定长的字符型数据,长度<=2000字节 |
| varchar2 | 用于描述变长的字符型数据,长度<=4000字节 |
| nchar | 用来存储Unicode字符集的定长字符型数据,长度<=1000字节 |
| nvarchar2 | 用来存储Unicode字符集的变长字符型数据,长度<=1000字节 |
| number | 用来存储整型或者浮点型数值 |
| Date | 用来存储日期数据 |
| Long | 用来存储最大长度为2GB的变长字符数据 |
| Raw | 用来存储非结构化数据的变长字符数据,长度<=2000字节 |
| Long raw | 用来存储非结构化数据的变长字符数据,长度<=2GB |
| rowid | 用来存储表中列的物理地址的二进制数据,占用固定的10个字节 |
| Blob | 用来存储多达4GB的非结构化的二进制数据 |
| Clob | 用来存储多达4GB的字符数据 |
| nclob | 用来存储多达4GB的Unicode字符数据 |
| Bfile | 用来把非结构化的二进制数据存储在数据库以外的操作系统文件中 |
| urowid | 用来存储表示任何类型列地址的二进制数据 |
| float | 用来存储浮点数 |
| 广告合作:400-664-0084 全国热线:400-664-0084 Copyright 2010 - 2017 www.my8848.com 珠峰网 粤ICP备15066211号 珠峰网 版权所有 All Rights Reserved
|