ANYDATA介紹

ANYDATA特殊列,屬於Oracle內建列,對於Oracle數據庫,每個值都是一種數據類型。當用戶建立表或聚簇時,須要爲每個列指定對應的數據類型。即便是建立存儲過程或函數的時,同樣須要爲參數指定相應的數據類型。git

一個數據類型能夠是標量的或非標量的,標的包含一個原子值,非標量的(有時成爲集合)包含一個集合值。LOB(Large Object)就是一個特殊形式的標量數據類型表示大量的標量、二進制或字符數據,sql

Oracle內建數據類型可分爲以下幾類:數據庫

wKiom1ZK0bTBDpdTAAAepnH1tgQ844.gif

Oracle中經過Code代碼來指代相應的數據類型,以下表所示:session

Table 2-1 Built-in Data Type Summaryoracle

Code Data Type Description

1ide

VARCHAR2(size [BYTE | CHAR])函數

Variable-length character string having maximum length size bytes or characters. You must specify size for VARCHAR2. Minimum size is 1 byte or 1 character. Maximum size is:ui

  • 32767 bytes or characters ifMAX_STRING_SIZE = EXTENDEDspa

  • 4000 bytes or characters ifMAX_STRING_SIZE = STANDARDcode

Refer to "Extended Data Types" for more information on the MAX_STRING_SIZEinitialization 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 length size characters. You must specify size for NVARCHAR2. The number of bytes can be up to two timessize for AL16UTF16 encoding and three times size for UTF8 encoding. Maximumsize is determined by the national character set definition, with an upper limit of:

  • 32767 bytes if MAX_STRING_SIZE =EXTENDED

  • 4000 bytes if MAX_STRING_SIZE =STANDARD

Refer to "Extended Data Types" for more information on the MAX_STRING_SIZEinitialization parameter.

2

NUMBER [ (p [, s]) ]

Number having precision p and scale s. The precision p can range from 1 to 38. The scale s 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 the NUMBER data type having precision p. A FLOAT value is represented internally as NUMBER. The precision p can range from 1 to 126 binary digits. A FLOATvalue 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 the NLS_TERRITORY parameter. The size is fixed at 7 bytes. This data type contains the datetime fields YEAR, MONTH, DAY, HOUR,MINUTE, and SECOND. 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, where fractional_seconds_precision is the number of digits in the fractional part of the SECOND datetime field. Accepted values of fractional_seconds_precision are 0 to 9. The default is 6. The default format is determined explicitly by theNLS_TIMESTAMP_FORMAT parameter or implicitly by the NLS_TERRITORY parameter. The size is 7 or 11 bytes, depending on the precision. This data type contains the datetime fields YEAR, MONTH, DAY, HOUR,MINUTE, and SECOND. It contains fractional seconds but does not have a time zone.

181

TIMESTAMP[(fractional_seconds_precision)] WITHTIME ZONE

All values of TIMESTAMP 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 the NLS_TERRITORY parameter. The size is fixed at 13 bytes. This data type contains the datetime fields YEAR, MONTH,DAY, HOUR, MINUTE, SECOND,TIMEZONE_HOUR, and TIMEZONE_MINUTE. It has fractional seconds and an explicit time zone.

231

TIMESTAMP[(fractional_seconds_precision)] WITHLOCAL TIME ZONE

All values of TIMESTAMP 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 the NLS_TIMESTAMP_FORMAT parameter or implicitly by the NLS_TERRITORYparameter. The size is 7 or 11 bytes, depending on the precision.

182

INTERVAL YEAR [(year_precision)] TOMONTH

Stores a period of time in years and months, where year_precision is the number of digits in the YEAR datetime field. Accepted values are 0 to 9. The default is 2. The size is fixed at 5 bytes.

183

INTERVAL DAY [(day_precision)] TOSECOND[(fractional_seconds_precision)]

Stores a period of time in days, hours, minutes, and seconds, where

  • day_precision is the maximum number of digits in the DAY datetime field. Accepted values are 0 to 9. The default is 2.

  • fractional_seconds_precisionis the number of digits in the fractional part of the SECOND 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 length size bytes. You must specify size for a RAW value. Maximum size is:

  • 32767 bytes if MAX_STRING_SIZE =EXTENDED

  • 2000 bytes if MAX_STRING_SIZE =STANDARD

Refer to "Extended Data Types" for more information on the MAX_STRING_SIZEinitialization 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 the ROWIDpseudocolumn.

208

UROWID [(size)]

Base 64 string representing the logical address of a row of an index-organized table. The optional size is the size of a column of type UROWID. The maximum size and default is 4000 bytes.

96

CHAR [(size [BYTE | CHAR])]

Fixed-length character data of length sizebytes or characters. Maximum size is 2000 bytes or characters. Default and minimumsize is 1 byte.

BYTE and CHAR have the same semantics as for VARCHAR2.

96

NCHAR[(size)]

Fixed-length character data of length sizecharacters. The number of bytes can be up to two times size for AL16UTF16 encoding and three times size for UTF8 encoding. Maximum size is determined by the national character set definition, with an upper limit of 2000 bytes. Default and minimum size 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 Types

 

Any類型用於處理未知的過程參數和表列的實際類型。該數據類型能夠讓你動態的封裝和訪問類型描述,數據實例和任何SQL類的實例數據集,這些類型由OCI和PL/SQL接口構造和訪問

ANYTYPE

該類型包含一個對任何SQL類型的名或未命名的臨時類型的類型描述。

ANYDATA

該類型包含一個給定的類型實例,數據類型加描述,ANYDATA能夠向表中列的數據類型那樣使用,而且將各類混雜的值存於該列之中。這些值能夠是SQL內建類型和用戶定義類型。

ANYDATASET

該類型包含一個給定的類型描述加類型實例集,ANYDATASET可靈活的用於過程參數數據類型,這些值一樣能夠是SQL內建類型和用戶定義類型。

 

數據類型的介紹:

http://docs.oracle.com/database/121/SQLRF/sql_elements001.htm#SQLRF0021

相關文章
相關標籤/搜索