ANYDATA介绍
ANYDATA特殊列,属于Oracle内建列,对于Oracle数据库,每一个值都是一种数据类型。当用户创建表或聚簇时,需要为每一个列指定对应的数据类型。即使是创建存储过程或函数的时,一样需要为参数指定相应的数据类型。
一个数据类型可以是标量的或非标量的,标的包含一个原子值,非标量的(有时成为集合)包含一个集合值。LOB(Large Object)就是一个特殊形式的标量数据类型表示大量的标量、二进制或字符数据,
Oracle内建数据类型可分为如下几类:
Oracle中通过Code代码来指代相应的数据类型,如下表所示:
Table 2-1 Built-in Data Type Summary
1
VARCHAR2
(size
[BYTE
|CHAR
])
Variable-length character string having maximum lengthsize
bytes or characters. You must specifysize
forVARCHAR2
. Minimumsize
is 1 byte or 1 character. Maximum size is:
32767 bytes or characters ifMAX_STRING_SIZE
=
EXTENDED
4000 bytes or characters ifMAX_STRING_SIZE
=
STANDARD
Refer to"Extended Data Types"for more information on theMAX_STRING_SIZE
initialization parameter.
BYTE
indicates that the column will have byte length semantics.CHAR
indicates that the column will have character semantics.
1
NVARCHAR2
(size
)
Variable-length Unicode character string having maximum lengthsize
characters. You must specifysize
forNVARCHAR2
. The number of bytes can be up to two timessize
forAL16UTF16
encoding and three timessize
forUTF8
encoding. Maximumsize
is determined by the national character set definition, with an upper limit of:
32767 bytes ifMAX_STRING_SIZE
=
EXTENDED
4000 bytes ifMAX_STRING_SIZE
=
STANDARD
Refer to"Extended Data Types"for more information on theMAX_STRING_SIZE
initialization parameter.
2
NUMBER
[ (p
[,s
]) ]
Number having precisionp
and scales
. The precisionp
can range from 1 to 38. The scales
can range from -84 to 127. Both precision and scale are in decimal digits. ANUMBER
value requires from 1 to 22 bytes.
2
FLOAT
[(p
)]
A subtype of theNUMBER
data type having precisionp
. AFLOAT
value is represented internally asNUMBER
. The precisionp
can range from 1 to 126 binary digits. AFLOAT
value requires from 1 to 22 bytes.
8
LONG
Character data of variable length up to 2 gigabytes, or 231-1 bytes. Provided for backward compatibility.
12
DATE
Valid date range from January 1, 4712 BC, to December 31, 9999 AD. The default format is determined explicitly by theNLS_DATE_FORMAT
parameter or implicitly by theNLS_TERRITORY
parameter. The size is fixed at 7 bytes. This data type contains the datetime fieldsYEAR
,MONTH
,DAY
,HOUR
,MINUTE
, andSECOND
. It does not have fractional seconds or a time zone.
100
BINARY_FLOAT
32-bit floating point number. This data type requires 4 bytes.
101
BINARY_DOUBLE
64-bit floating point number. This data type requires 8 bytes.
180
TIMESTAMP
[(fractional_seconds_precision
)]
Year, month, and day values of date, as well as hour, minute, and second values of time, wherefractional_seconds_precision
is the number of digits in the fractional part of theSECOND
datetime field. Accepted values offractional_seconds_precision
are 0 to 9. The default is 6. The default format is determined explicitly by theNLS_TIMESTAMP_FORMAT
parameter or implicitly by theNLS_TERRITORY
parameter. The size is 7 or 11 bytes, depending on the precision. This data type contains the datetime fieldsYEAR
,MONTH
,DAY
,HOUR
,MINUTE
, andSECOND
. It contains fractional seconds but does not have a time zone.
181
TIMESTAMP
[(fractional_seconds_precision
)]WITH
TIME
ZONE
All values ofTIMESTAMP
as well as time zone displacement value, wherefractional_seconds_precision
is the number of digits in the fractional part of theSECOND
datetime field. Accepted values are 0 to 9. The default is 6. The default format is determined explicitly by theNLS_TIMESTAMP_FORMAT
parameter or implicitly by theNLS_TERRITORY
parameter. The size is fixed at 13 bytes. This data type contains the datetime fieldsYEAR
,MONTH
,DAY
,HOUR
,MINUTE
,SECOND
,TIMEZONE_HOUR
, andTIMEZONE_MINUTE
. It has fractional seconds and an explicit time zone.
231
TIMESTAMP
[(fractional_seconds_precision
)]WITH
LOCAL
TIME
ZONE
All values ofTIMESTAMP
WITH
TIME
ZONE
, with the following exceptions:
Data is normalized to the database time zone when it is stored in the database.
When the data is retrieved, users see the data in the session time zone.
The default format is determined explicitly by theNLS_TIMESTAMP_FORMAT
parameter or implicitly by theNLS_TERRITORY
parameter. The size is 7 or 11 bytes, depending on the precision.
182
INTERVAL
YEAR
[(year_precision
)]TO
MONTH
Stores a period of time in years and months, whereyear_precision
is the number of digits in theYEAR
datetime field. Accepted values are 0 to 9. The default is 2. The size is fixed at 5 bytes.
183
INTERVAL
DAY
[(day_precision
)]TO
SECOND
[(fractional_seconds_precision
)]
Stores a period of time in days, hours, minutes, and seconds, where
day_precision
is the maximum number of digits in theDAY
datetime field. Accepted values are 0 to 9. The default is 2.
fractional_seconds_precision
is the number of digits in the fractional part of theSECOND
field. Accepted values are 0 to 9. The default is 6.
The size is fixed at 11 bytes.
23
RAW
(size
)
Raw binary data of lengthsize
bytes. You must specifysize
for aRAW
value. Maximumsize
is:
32767 bytes ifMAX_STRING_SIZE
=
EXTENDED
2000 bytes ifMAX_STRING_SIZE
=
STANDARD
Refer to"Extended Data Types"for more information on theMAX_STRING_SIZE
initialization parameter.
24
LONG RAW
Raw binary data of variable length up to 2 gigabytes.
69
ROWID
Base 64 string representing the unique address of a row in its table. This data type is primarily for values returned by theROWID
pseudocolumn.
208
UROWID
[(size
)]
Base 64 string representing the logical address of a row of an index-organized table. The optionalsize
is the size of a column of typeUROWID
. The maximum size and default is 4000 bytes.
96
CHAR
[(size
[BYTE
|CHAR
])]
Fixed-length character data of lengthsize
bytes or characters. Maximumsize
is 2000 bytes or characters. Default and minimumsize
is 1 byte.
BYTE
andCHAR
have the same semantics as forVARCHAR2
.
96
NCHAR
[(size
)]
Fixed-length character data of lengthsize
characters. The number of bytes can be up to two timessize
forAL16UTF16
encoding and three timessize
forUTF8
encoding. Maximumsize
is determined by the national character set definition, with an upper limit of 2000 bytes. Default and minimumsize
is 1 character.
112
CLOB
A character large object containing single-byte or multibyte characters. Both fixed-width and variable-width character sets are supported, both using the database character set. Maximum size is (4 gigabytes - 1) * (database block size).
112
NCLOB
A character large object containing Unicode characters. Both fixed-width and variable-width character sets are supported, both using the database national character set. Maximum size is (4 gigabytes - 1) * (database block size). Stores national character set data.
113
BLOB
A binary large object. Maximum size is (4 gigabytes - 1) * (database block size).
114
BFILE
Contains a locator to a large binary file stored outside the database. Enables byte stream I/O access to external LOBs residing on the database server. Maximum size is 4 gigabytes.
Any类型用于处理未知的过程参数和表列的实际类型。该数据类型可以让你动态的封装和访问类型描述,数据实例和任何SQL类的实例数据集,这些类型由OCI和PL/SQL接口构造和访问
ANYTYPE该类型包含一个对任何SQL类型的名或未命名的临时类型的类型描述。
ANYDATA该类型包含一个给定的类型实例,数据类型加描述,ANYDATA可以向表中列的数据类型那样使用,并且将各种混杂的值存于该列之中。这些值可以是SQL内建类型和用户定义类型。
ANYDATASET该类型包含一个给定的类型描述加类型实例集,ANYDATASET可灵活的用于过程参数数据类型,这些值同样可以是SQL内建类型和用户定义类型。
数据类型的介绍:
http://docs.oracle.com/database/121/SQLRF/sql_elements001.htm#SQLRF0021
声明:本站所有文章资源内容,如无特殊说明或标注,均为采集网络资源。如若本站内容侵犯了原著者的合法权益,可联系本站删除。