differnt data types in oracle
TRANSCRIPT
-
8/10/2019 Differnt Data Types in Oracle
1/29
Skip Headers
Oracle C++ Call Interface Programmer's Guide
10gRelease 1 (10.1)
Part Number B10778-01Home Book
List
Content
s
Index Master Inde
x
Feedbac
k
View PDF
4 DatatypesThis chapter is a reference for Oracle datatypes used by Oracle C++ Interface applications. This
information will help you understand the conversions between internal and external
representations of data that occur when you transfer data between your application and thedatabase server.
This chapter contains these topics
Overview of Oracle !atatypes
Internal !atatypes
"xternal !atatypes
!ata Conversions
Overview of Oracle Datatyes
#ccurate communication between your C++ pro$ram and the Oracle database server is critical.
OCCI applications can retrieve data from database tables by usin$ S%& 'ueries or they can
modify existin$ data throu$h the use of S%& INSERT( UPDATE( and DELETEfunctions. To
facilitate communication between the host lan$ua$e C++ and the database server( you must be
aware of how C++ datatypes are converted to Oracle datatypes and back a$ain.
In the Oracle database( values are stored in columns in tables. Internally( Oracle represents data
in particular formats called internal datatypes. NUMBER( VARCHAR2( and DATEare examples of
Oracle internal datatypes.
Previo!s "ext
http://download.oracle.com/docs/cd/B14117_01/appdev.101/b10778/types.htm#BEGINhttp://download.oracle.com/docs/cd/B14117_01/index.htmhttp://download.oracle.com/docs/cd/B14117_01/nav/portal_3.htmhttp://download.oracle.com/docs/cd/B14117_01/nav/portal_3.htmhttp://download.oracle.com/docs/cd/B14117_01/appdev.101/b10778/toc.htmhttp://download.oracle.com/docs/cd/B14117_01/appdev.101/b10778/toc.htmhttp://download.oracle.com/docs/cd/B14117_01/appdev.101/b10778/index.htmhttp://download.oracle.com/docs/cd/B14117_01/mix.101/b12039/toc.htmhttp://download.oracle.com/docs/cd/B14117_01/mix.101/b12039/toc.htmhttp://download.oracle.com/docs/cd/B14117_01/dcommon/html/feedback.htmhttp://download.oracle.com/docs/cd/B14117_01/dcommon/html/feedback.htmhttp://download.oracle.com/docs/cd/B14117_01/appdev.101/b10778.pdfhttp://download.oracle.com/docs/cd/B14117_01/appdev.101/b10778/types.htm#i1011113http://download.oracle.com/docs/cd/B14117_01/appdev.101/b10778/types.htm#i1011118http://download.oracle.com/docs/cd/B14117_01/appdev.101/b10778/types.htm#i1011123http://download.oracle.com/docs/cd/B14117_01/appdev.101/b10778/types.htm#i1011128http://download.oracle.com/docs/cd/B14117_01/appdev.101/b10778/objects.htmhttp://download.oracle.com/docs/cd/B14117_01/appdev.101/b10778/metadata.htmhttp://download.oracle.com/docs/cd/B14117_01/index.htmhttp://download.oracle.com/docs/cd/B14117_01/index.htmhttp://download.oracle.com/docs/cd/B14117_01/nav/portal_3.htmhttp://download.oracle.com/docs/cd/B14117_01/nav/portal_3.htmhttp://download.oracle.com/docs/cd/B14117_01/nav/portal_3.htmhttp://download.oracle.com/docs/cd/B14117_01/appdev.101/b10778/toc.htmhttp://download.oracle.com/docs/cd/B14117_01/appdev.101/b10778/toc.htmhttp://download.oracle.com/docs/cd/B14117_01/appdev.101/b10778/toc.htmhttp://download.oracle.com/docs/cd/B14117_01/appdev.101/b10778/index.htmhttp://download.oracle.com/docs/cd/B14117_01/appdev.101/b10778/index.htmhttp://download.oracle.com/docs/cd/B14117_01/mix.101/b12039/toc.htmhttp://download.oracle.com/docs/cd/B14117_01/mix.101/b12039/toc.htmhttp://download.oracle.com/docs/cd/B14117_01/mix.101/b12039/toc.htmhttp://download.oracle.com/docs/cd/B14117_01/dcommon/html/feedback.htmhttp://download.oracle.com/docs/cd/B14117_01/dcommon/html/feedback.htmhttp://download.oracle.com/docs/cd/B14117_01/dcommon/html/feedback.htmhttp://download.oracle.com/docs/cd/B14117_01/appdev.101/b10778/objects.htmhttp://download.oracle.com/docs/cd/B14117_01/appdev.101/b10778/objects.htmhttp://download.oracle.com/docs/cd/B14117_01/appdev.101/b10778/metadata.htmhttp://download.oracle.com/docs/cd/B14117_01/appdev.101/b10778/metadata.htmhttp://download.oracle.com/docs/cd/B14117_01/appdev.101/b10778.pdfhttp://download.oracle.com/docs/cd/B14117_01/appdev.101/b10778/types.htm#i1011113http://download.oracle.com/docs/cd/B14117_01/appdev.101/b10778/types.htm#i1011118http://download.oracle.com/docs/cd/B14117_01/appdev.101/b10778/types.htm#i1011123http://download.oracle.com/docs/cd/B14117_01/appdev.101/b10778/types.htm#i1011128http://download.oracle.com/docs/cd/B14117_01/appdev.101/b10778/types.htm#BEGIN -
8/10/2019 Differnt Data Types in Oracle
2/29
OCCI applications work with host lan$ua$e datatypes( or external datatypes( predefined by the
host lan$ua$e. )hen data is transferred between an OCCI application and the database server(
the data from the database is converted from internal datatypes to external datatypes.
OCCI Type and Data Conversion
OCCI defines an enumerator called Typethat lists the possible data representation formats
available in an OCCI application. These representation formats are called external datatypes.
)hen data is sent to the database server from the OCCI application( the external datatype
indicates to the database server what format to expect the data. )hen data is re'uested from the
database server by the OCCI application( the external datatype indicates the format of the data to
be returned.
*or example( on retrievin$ a value from a NUMBERcolumn( the pro$ram may be set to retrieve it
in OCCIINTformat a si$ned inte$er format into an inte$er variable,. Or( the client mi$ht be set to
send data in OCCIFLOATformat floatin$-point format, stored in a C++ float variable to be
inserted in a column of NUMBERtype.
#n OCCI application binds input parameters to a Statement( by callin$ a setxxx()method the
externa "atatypeis implicitly specified by the method name,( or by callin$ the
re#$sterO%tParam()( setDataB%&&er()( or setDataB%&&erArray()method the external
datatype is explicitly specified in the method call,. Similarly( when data values are fetched
throu$h a Res%tSetobect( the external representation of the retrieved data must be specified.
This is done by callin$ a #etxxx()method the externa "atatypeis implicitly specified by
the method name, or by callin$ the setDataB%&&er()method the external datatype is explicitly
specified in the method call,.
Note:
#$ere are more external datatyes t$an internal datatyes% In
some cases& a sin'le external datatye mas to a sin'le internal
datatye( in ot$er cases& many external datatyes ma to a sin'le
internal datatye% #$e many)to)one main' rovides yo! wit$
added *exibility%
See Also:
-
8/10/2019 Differnt Data Types in Oracle
3/29
+xternal Datatyes
Internal Datatyes
The internal built-in, datatypes provided by Oracle are listed in this section. # brief summary of
internal Oracle datatypes( includin$ description( code( and maximum si/e( appears in Table 0-1.
Table 4-1 Summary of Oracle Internal Datatypes
Internal Datatype Maximum Size
BFILE , 'i'abytes
BINAR'DOUBLE - bytes
BINAR'FLOAT , bytes
CHAR .&/// bytes
DATE 0 bytes
INTERVAL DA' TO SECOND REF 11 bytes
INTERVAL 'EAR TO MONTH REF 2 bytes
LON . 'i'abytes 3.451)1
bytes6
LON RA* . 'i'abytes 3.451)1
bytes6
NCHAR .&/// bytes
NUMBER .1 bytes
NVARCHAR2 ,&/// bytes
RA* .&/// bytes
REF
http://download.oracle.com/docs/cd/B14117_01/appdev.101/b10778/types.htm#i1011123http://download.oracle.com/docs/cd/B14117_01/appdev.101/b10778/types.htm#CJAFAGFIhttp://download.oracle.com/docs/cd/B14117_01/appdev.101/b10778/types.htm#CJAFAGFIhttp://download.oracle.com/docs/cd/B14117_01/appdev.101/b10778/types.htm#i1011123http://download.oracle.com/docs/cd/B14117_01/appdev.101/b10778/types.htm#CJAFAGFI -
8/10/2019 Differnt Data Types in Oracle
4/29
Internal Datatype Maximum Size
BLOB , 'i'abytes
CLOB , 'i'abytes
NCLOB , 'i'abytes
RO*ID 1/ bytes
TIMESTAMP 11 bytes
TIMESTAMP *ITH LOCAL TIME +ONE 0 bytes
TIMESTAMP *ITH TIME +ONE 15 bytes
URO*ID ,/// bytes
7ser)de8ned tye 3ob9ect tye& VARRA'& nested table6
VARCHAR2 ,&/// bytes
See Also:
Oracle Database SQL Reference
Oracle Database Concepts
Character Strings and Byte Arrays
2ou can use five Oracle internal datatypes to specify columns that contain either characters or
arrays of bytes CHAR( VARCHAR2( RA*( LON( and LONRA*.
CHAR( VARCHAR2( and LONcolumns normally hold character data. RA*and LONRA*hold bytes
that are not interpreted as characters( for example( pixel values in a bitmapped $raphics ima$e.
Character data can be transformed when passed throu$h a $ateway between networks. *or
example( character data passed between machines by usin$ different lan$ua$es where sin$le
http://download.oracle.com/docs/cd/B14117_01/server.101/b10759/toc.htmhttp://download.oracle.com/docs/cd/B14117_01/server.101/b10743/toc.htmhttp://download.oracle.com/docs/cd/B14117_01/server.101/b10759/toc.htmhttp://download.oracle.com/docs/cd/B14117_01/server.101/b10743/toc.htm -
8/10/2019 Differnt Data Types in Oracle
5/29
characters may be represented by differin$ numbers of bytes, can be si$nificantly chan$ed in
len$th. 3aw data is never converted in this way.
The database desi$ner is responsible for choosin$ the appropriate Oracle internal datatype for
each column in a table. 2ou must be aware of the many possible ways that character and byte-
array data can be represented and converted between variables in the OCCI pro$ram and Oracle
database tables.
Universal Rowid (UROWID
The universal rowid URO*ID, is a datatype that can store both the lo$ical and the physical rowid
of rows in Oracle tables and in forei$n tables( such as !45 tables accessed throu$h a $ateway.
&o$ical r,-$"values are primary key-based lo$ical identifiers for the rows of index or$ani/ed
tables.
To use columns of the URO*IDdatatype( the value of the COMPATIBLEinitiali/ation parameter
must be set to ./0or hi$her.
The followin$ OCCIS1LTtypes can be bound to universal r,-$"s
OCCIS1LTCHRVARCHAR2,
OCCIS1LTVCSVARCHAR,
OCCIS1LTSTRNULLterminated strin$,
OCCIS1LTLVClon$ VARCHAR,
OCCIS1LTAFCCHAR)
OCCIS1LTAVCCHAR+,
OCCIS1LTVSTstrin$,
OCCIS1LTRDDRO*IDdescriptor,
+xternal Datatyes
Communication between the host OCCI application and the Oracle database server is throu$h the
use of external datatypes. Specifically( external datatypes are mapped to C++ datatypes.
Table 0-5lists the Oracle external datatypes( the C++ e'uivalent what the Oracle internal
datatype is usually converted to,( and the correspondin$ OCCI type. In C++ !atatype column( n
http://download.oracle.com/docs/cd/B14117_01/appdev.101/b10778/types.htm#CJAFHAADhttp://download.oracle.com/docs/cd/B14117_01/appdev.101/b10778/types.htm#CJAFHAAD -
8/10/2019 Differnt Data Types in Oracle
6/29
-
8/10/2019 Differnt Data Types in Oracle
7/29
External Datatype C++ Type OCCI Type
DATE; 4ar697 OCCIS1LTDAT
DATE;; Date OCCIDATE
DOUBLE;; ",%5e OCCIDOUBLE
FLOAT; &,at3 ",%5e OCCIFLOAT
FLOAT;; &,at OCCIFLOAT
INT;; $nt OCCIINT
INTERVAL DA' TO
SECOND;
4ar6007 OCCIS1LTINTERVALDS
INTERVAL 'EAR TO
MONTH;
4ar6:7 OCCIS1LTINTERVAL'M
INTERVALDS;; Inter;aDS OCCIINTERVALDS
INTERVAL'M;; Inter;a'M OCCIINTERVAL'M
LON; 4ar6n7 OCCIS1LTLN
LON RA*; %ns$#ne" 4ar6n7 OCCIS1LTLBI
LON VARCHAR; 4ar6n8s$e
-
8/10/2019 Differnt Data Types in Oracle
8/29
External Datatype C++ Type OCCI Type
NATIVE FLOAT;; &,at OCCIBFLOAT
n!ll terminated STRIN
;
4ar6n807 OCCIS1LTSTR
NUMBER; %ns$#ne" 4ar6207 OCCIS1LTNUM
NUMBER;; N%m5er OCCINUMBER
POB=ECT;; 7ser de8ned tyes 'enerated by
O## !tility%
OCCIPOB=ECT
RA*; %ns$#ne" 4ar6n7 OCCIS1LTBIN
REF; LNOCIRe& OCCIS1LTREF
REF;; Re& OCCIREF
REFAN';; Re&Any OCCIREFAN'
RO*ID; LNOCIR,-$" OCCIS1LTRID
RO*ID;; Bytes OCCIRO*ID
RO*IDdescritor ; LNOCIR,-$" OCCIS1LTRDD
STRIN;; STL str$n# OCCISTRIN
TIMESTAMP; 4ar6007 OCCIS1LTTIMESTAMP
TIMESTAMP;; T$mestamp OCCITIMESTAMP
TIMESTAMP *ITH LOCAL
TIME +ONE;
4ar697 OCCIS1LTTIMESTAMPLT
+
TIMESTAMP *ITH TIME
+ONE;
4ar60>7 OCCIS1LTTIMESTAMPT+
UNSINED INT; %ns$#ne" $nt OCCIUNSINEDINT
-
8/10/2019 Differnt Data Types in Oracle
9/29
External Datatype C++ Type OCCI Type
UNSINED INT;; %ns$#ne" $nt OCCIUNSINEDINT
VARCHAR; 4ar6n8s$
-
8/10/2019 Differnt Data Types in Oracle
10/29
BFILE
The external datatype BFILEallows read-only byte stream access to lar$e files on the file system
of the database server. # BFILEis a lar$e binary data obect stored in operatin$ system files
outside database tablespaces. These files use reference semantics. The Oracle server can access a
BFILEprovided the underlyin$ server operatin$ system supports stream-mode access to theseoperatin$ system files.
BDOBLE
The BD,%5einterface in OCCI encapsulates the native double data and the NULLinformation of
a column or obect attribute of the type 5$nary",%5e. The OCCI methods in #ny!ata Class(
3esultSet Classand Statement Class( and the $lobal methods that take these class obects as
parameters( use the followin$ definition for the BDOUBLEdatatype
Example 4-1 Definition of t!e "DO#"$E Datatype
str%4t BD,%5e?",%5e ;a%e@5,, $sN%@
BD,%5e()?
$sN% &ase@;a%e /@
@
BFLOAT
The BF,atinterface in OCCI encapsulates the native float data and the NULLinformation of a
column or obect attribute of the type 5$nary&,at. The OCCI methods in #ny!ata Class(
3esultSet Classand Statement Class( and the $lobal methods that take these class obects as
parameters( use the followin$ definition for the BFLOATdatatype
Example 4-2 Definition of t!e "%$O&T Datatype
str%4t BF,at?
&,at ;a%e@5,, $sN%@
BF,at()?
$sN% &ase@;a%e /@
@
http://download.oracle.com/docs/cd/B14117_01/appdev.101/b10778/reference003.htm#CACFDEFGhttp://download.oracle.com/docs/cd/B14117_01/appdev.101/b10778/reference025.htm#i1079050http://download.oracle.com/docs/cd/B14117_01/appdev.101/b10778/reference028.htm#i1079052http://download.oracle.com/docs/cd/B14117_01/appdev.101/b10778/reference003.htm#CACFDEFGhttp://download.oracle.com/docs/cd/B14117_01/appdev.101/b10778/reference025.htm#i1079050http://download.oracle.com/docs/cd/B14117_01/appdev.101/b10778/reference028.htm#i1079052http://download.oracle.com/docs/cd/B14117_01/appdev.101/b10778/reference003.htm#CACFDEFGhttp://download.oracle.com/docs/cd/B14117_01/appdev.101/b10778/reference025.htm#i1079050http://download.oracle.com/docs/cd/B14117_01/appdev.101/b10778/reference028.htm#i1079052http://download.oracle.com/docs/cd/B14117_01/appdev.101/b10778/reference003.htm#CACFDEFGhttp://download.oracle.com/docs/cd/B14117_01/appdev.101/b10778/reference025.htm#i1079050http://download.oracle.com/docs/cd/B14117_01/appdev.101/b10778/reference028.htm#i1079052 -
8/10/2019 Differnt Data Types in Oracle
11/29
BLOB
The external datatype BLOBstores unstructured binary lar$e obects. # BLOBcan be thou$ht of as
a bitstream with no character set semantics. BLOBs can store up to $i$abytes of binary data.
BLOBdatatypes have full transactional support. Chan$es made throu$h OCCI participate fully in
the transaction. BLOBvalue manipulations can be committed or rolled back. 2ou cannot save a
BLOBlocator in a variable in one transaction and then use it in another transaction or session.
C!A"
The external datatype CHARis a strin$ of characters( with a maximum len$th of 2characters.
Character strin$s are compared by usin$ blank-padded comparison semantics.
C!A"#
The external datatype CHAR+is similar to the CHARdatatype( except that the strin$ must be null
terminated on input( and Oracle places a null terminator character at the end of the strin$ on
output. The null terminator serves only to delimit the strin$ on input or output. It is not part of
the data in the table.
CLOB
The external datatype CLOBstores fixed-width or varyin$-width character data. # CLOBcan store
up to $i$abytes of character data. CLOBs have full transactional support. Chan$es made throu$h
OCCI participate fully in the transaction. CLOBvalue manipulations can be committed or rolled
back. 2ou cannot save a CLOBlocator in a variable in one transaction and then use it in another
transaction or session.
DATE
The external datatype DATEcan update( insert( or retrieve a date value usin$ the Oracle internal
seven byte date binary format( as listed in Table 0-8
Table 4-' %ormat of t!e D&TE Datatype
Example
Byte
$Century
Byte
%&ear
Byte
'Mont(
Byte
)Day
Byte
*!our
Byte
Minute
Byte
,Se-on.
$% /1)
-
8/10/2019 Differnt Data Types in Oracle
12/29
Example
Byte
$Century
Byte
%&ear
Byte
'Mont(
Byte
)Day
Byte
*!our
Byte
Minute
Byte
,Se-on.
,01. BC+
+xamle 1& /1)
-
8/10/2019 Differnt Data Types in Oracle
13/29
Notes:
If no time is specified for a date( the time defaults to
midni$ht and bytes > throu$h ? are set to 0 0( 0( 0.
)hen you enter a date in binary format by usin$ the external
datatype DATE( the database does not perform consistency or ran$e
checkin$. #ll data in this format must be validated before input.
There is little need for the external datatype DATE. It is more
convenient to convert DATEvalues to a character format( because
most pro$rams deal with dates in a character format( such as !!-
@O=-2222. Instead( you may use the Datedatatype.
)hen a DATEcolumn is converted to a character strin$ inyour pro$ram( it is returned in the default format mask for your
session( or as specified in the INIT/ORAfile.
This datatype is different from OCCI DATEwhich
corresponds to a C++ Datedatatype.
FLOATThe external datatype FLOATprocesses numbers with fractional parts. The number is represented
in the host systemAs floatin$-point format. =ormally( the len$th is 0 or B bytes.
The internal format of an Oracle number is decimal. @ost floatin$-point implementations are
binary. Oracle( therefore( represents numbers with $reater precision than floatin$-point
representations.
INTE/E"
The external datatype INTEERis used for convertin$ numbers. #n external inte$er is a si$nedbinary number. Its si/e is operatin$ system-dependent. If the number bein$ returned from Oracle
is not an inte$er( then the fractional part is discarded( and no error is returned. If the number
returned exceeds the capacity of a si$ned inte$er for the system( then Oracle returns an overflow
on conversion error.
-
8/10/2019 Differnt Data Types in Oracle
14/29
Note:
> ro!ndin' error may occ!r w$en convertin' between FLOATand
NUMBER% 7sin' a FLOATas a bind variable in a ?!ery may ret!rn an
error% @o! can work aro!nd t$is by convertin' t$e FLOATto a strin'
and !sin' t$e OCCI tye OCCIS1LTCHRor t$e OCCI tye
OCCIS1LTSTRfor t$e oeration%
INTE"0AL DA& TO SECOND
The external datatype INTERVALDA'TOSECONDstores the difference between two datetime
values in terms of days( hours( minutes( and seconds. Specify this datatype as follows
INTERVAL DA' 6(day_precision)7TO SECOND 6(fractional_seconds_precision)7
This example uses the followin$ placeholders
day_precision =umber of di$its in the DA'datetime field. #ccepted values are 0to .
The default is 2.
fractional_seconds_precision =umber of di$its in the fractional part of the SECOND
datetime field. #ccepted values are to . The default is .
To specify an INTERVALDA'TOSECONDliteral with nondefault day and second precisions( you
must specify the precisions in the literal. *or example( you mi$ht specify an interval of 0days(
0hours( 2minutes( 2seconds( and 22hundredths of a second as follows
INTERVAL K0 022/22K DA'(>) TO SECOND(2)
2ou can also use abbreviated forms of the INTERVALDA'TOSECONDliteral. *or example
INTERVAL KK MINUTEmaps to INTERVAL K /K DA' TO SECOND(2)
INTERVAL K>>K HOUR TO MINUTEmaps to INTERVAL K >>/K DA' TOSECOND(2)
INTERVAL K>K SECOND(232)maps to INTERVAL K >/K DA' TOSECOND(2)
INTE"0AL &EA" TO MONT!
-
8/10/2019 Differnt Data Types in Oracle
15/29
-
8/10/2019 Differnt Data Types in Oracle
16/29
NCLOBs have full transactional support. Chan$es made throu$h OCCI participate fully in the
transaction. NCLOBvalue manipulations can be committed or rolled back. 2ou cannot save an
NCLOBlocator in a variable in one transaction and then use it in another transaction or session.
2ou cannot create an obect with NCLOBattributes( but you can specify NCLOBparameters in
methods.
NMBE"
2ou should not need to use NUMBERas an external datatype. If you do use it( Oracle returns
numeric values in its internal 20-byte binary format and will expect this format on input. The
followin$ discussion is included for completeness only.
Oracle stores values of the NUMBERdatatype in a variable-len$th format. The first byte is the
exponent and is followed by 0to 2mantissa bytes. The hi$h-order bit of the exponent byte is
the si$n bit it is set for positive numbers and it is cleared for ne$ative numbers. The lower 9bitsrepresent the exponent( which is a base-0di$it with an offset of :.
To calculate the decimal exponent( add :to the base-0exponent and add another 02.if the
number is positive. If the number is ne$ative( you do the same( but subse'uently the bits are
inverted. *or example( J:has a base-0exponent 2 (x>e). The decimal exponent is thus
(x>e)J02.J: x40J02.J: 0>J02.J: .
"ach mantissa byte is a base-0di$it( in the ran$e 0to 0. *or positive numbers( the di$it has
0added to it. So( the mantissa di$it for the value :is . *or ne$ative numbers( instead of addin$
1( the di$it is subtracted from 00. So( the mantissa di$it for the number J:is 00J: .
=e$ative numbers have a byte containin$ 02appended to the data bytes. However( ne$ative
numbers that have 2mantissa bytes do not have the trailin$ 02byte. 4ecause the mantissa
di$its are stored in base-03each byte can represent two decimal di$its. The mantissa is
normali/ed leadin$ /eroes are not stored.
Dp to 2data bytes can represent the mantissa. However( only 0are $uaranteed to be accurate.
The 0data bytes( each representin$ a base-0di$it( yield a maximum precision of >.di$its for
an internal datatype NUMBER.
=ote that this datatype is different from OCCI NUMBERwhich corresponds to a C++ N%m5er
datatype.
OCCI BFILE
-
8/10/2019 Differnt Data Types in Oracle
17/29
See Also:
C$ater 1/& A OCCI >lication Pro'rammin' InterfaceA& B8leClass
OCCI BLOB
See Also:
C$ater 1/& A OCCI >lication Pro'rammin' InterfaceA& Blob
Class
OCCI B&TES
See Also:
C$ater 1/& A OCCI >lication Pro'rammin' InterfaceA& Bytes
Class
OCCI CLOB
See Also:
C$ater 1/& A OCCI >lication Pro'rammin' InterfaceA& Clob
Class
OCCI DATE
See Also:
http://download.oracle.com/docs/cd/B14117_01/appdev.101/b10778/reference.htm#g1316297http://download.oracle.com/docs/cd/B14117_01/appdev.101/b10778/reference004.htm#i1155597http://download.oracle.com/docs/cd/B14117_01/appdev.101/b10778/reference.htm#g1316297http://download.oracle.com/docs/cd/B14117_01/appdev.101/b10778/reference005.htm#i1119032http://download.oracle.com/docs/cd/B14117_01/appdev.101/b10778/reference005.htm#i1119032http://download.oracle.com/docs/cd/B14117_01/appdev.101/b10778/reference.htm#g1316297http://download.oracle.com/docs/cd/B14117_01/appdev.101/b10778/reference006.htm#i1119060http://download.oracle.com/docs/cd/B14117_01/appdev.101/b10778/reference006.htm#i1119060http://download.oracle.com/docs/cd/B14117_01/appdev.101/b10778/reference.htm#g1316297http://download.oracle.com/docs/cd/B14117_01/appdev.101/b10778/reference007.htm#i1118691http://download.oracle.com/docs/cd/B14117_01/appdev.101/b10778/reference007.htm#i1118691http://download.oracle.com/docs/cd/B14117_01/appdev.101/b10778/reference.htm#g1316297http://download.oracle.com/docs/cd/B14117_01/appdev.101/b10778/reference004.htm#i1155597http://download.oracle.com/docs/cd/B14117_01/appdev.101/b10778/reference.htm#g1316297http://download.oracle.com/docs/cd/B14117_01/appdev.101/b10778/reference005.htm#i1119032http://download.oracle.com/docs/cd/B14117_01/appdev.101/b10778/reference005.htm#i1119032http://download.oracle.com/docs/cd/B14117_01/appdev.101/b10778/reference.htm#g1316297http://download.oracle.com/docs/cd/B14117_01/appdev.101/b10778/reference006.htm#i1119060http://download.oracle.com/docs/cd/B14117_01/appdev.101/b10778/reference006.htm#i1119060http://download.oracle.com/docs/cd/B14117_01/appdev.101/b10778/reference.htm#g1316297http://download.oracle.com/docs/cd/B14117_01/appdev.101/b10778/reference007.htm#i1118691http://download.oracle.com/docs/cd/B14117_01/appdev.101/b10778/reference007.htm#i1118691 -
8/10/2019 Differnt Data Types in Oracle
18/29
C$ater 1/& A OCCI >lication Pro'rammin' InterfaceA& Date
Class
OCCI INTE"0ALDS
See Also:
C$ater 1/& A OCCI >lication Pro'rammin' InterfaceA&
IntervalDClass
OCCI INTE"0AL&M
See Also:
C$ater 1/& A OCCI >lication Pro'rammin' InterfaceA&
Interval@M Class
OCCI NMBE"
See Also:
C$ater 1/& A OCCI >lication Pro'rammin' InterfaceA& "!mber
Class
OCCI 2OB3ECT
See Also:
C$ater 1/& A OCCI >lication Pro'rammin' InterfaceA& POb9ect
http://download.oracle.com/docs/cd/B14117_01/appdev.101/b10778/reference.htm#g1316297http://download.oracle.com/docs/cd/B14117_01/appdev.101/b10778/reference011.htm#i1079044http://download.oracle.com/docs/cd/B14117_01/appdev.101/b10778/reference011.htm#i1079044http://download.oracle.com/docs/cd/B14117_01/appdev.101/b10778/reference.htm#g1316297http://download.oracle.com/docs/cd/B14117_01/appdev.101/b10778/reference013.htm#i1066767http://download.oracle.com/docs/cd/B14117_01/appdev.101/b10778/reference.htm#g1316297http://download.oracle.com/docs/cd/B14117_01/appdev.101/b10778/reference014.htm#i1080017http://download.oracle.com/docs/cd/B14117_01/appdev.101/b10778/reference.htm#g1316297http://download.oracle.com/docs/cd/B14117_01/appdev.101/b10778/reference020.htm#i1018892http://download.oracle.com/docs/cd/B14117_01/appdev.101/b10778/reference020.htm#i1018892http://download.oracle.com/docs/cd/B14117_01/appdev.101/b10778/reference.htm#g1316297http://download.oracle.com/docs/cd/B14117_01/appdev.101/b10778/reference021.htm#i1039640http://download.oracle.com/docs/cd/B14117_01/appdev.101/b10778/reference.htm#g1316297http://download.oracle.com/docs/cd/B14117_01/appdev.101/b10778/reference011.htm#i1079044http://download.oracle.com/docs/cd/B14117_01/appdev.101/b10778/reference011.htm#i1079044http://download.oracle.com/docs/cd/B14117_01/appdev.101/b10778/reference.htm#g1316297http://download.oracle.com/docs/cd/B14117_01/appdev.101/b10778/reference013.htm#i1066767http://download.oracle.com/docs/cd/B14117_01/appdev.101/b10778/reference.htm#g1316297http://download.oracle.com/docs/cd/B14117_01/appdev.101/b10778/reference014.htm#i1080017http://download.oracle.com/docs/cd/B14117_01/appdev.101/b10778/reference.htm#g1316297http://download.oracle.com/docs/cd/B14117_01/appdev.101/b10778/reference020.htm#i1018892http://download.oracle.com/docs/cd/B14117_01/appdev.101/b10778/reference020.htm#i1018892http://download.oracle.com/docs/cd/B14117_01/appdev.101/b10778/reference.htm#g1316297http://download.oracle.com/docs/cd/B14117_01/appdev.101/b10778/reference021.htm#i1039640 -
8/10/2019 Differnt Data Types in Oracle
19/29
Class
OCCI "EF
See Also:
C$ater 1/& A OCCI >lication Pro'rammin' InterfaceA& ef Class
OCCI "EFAN&
See Also:
C$ater 1/& A OCCI >lication Pro'rammin' InterfaceA&
ef>nyClass
OCCI ST"IN/
The external datatype OCCI STRINcorresponds to an STL str$n#.
OCCI TIMESTAM2
See Also:
C$ater 1/& A OCCI >lication Pro'rammin' InterfaceA&
#imestam Class
OCCI 0ECTO"
The external datatype OCCI VECTORis used to represent collections( for example( a nested table
or VARRA'. CREATE T'PE n%mtype as VARRA' OF NUMBER(0)can be represented in a C++
application as ;e4t,r$nt( ;e4t,rN%m5er( and so on.
http://download.oracle.com/docs/cd/B14117_01/appdev.101/b10778/reference021.htm#i1039640http://download.oracle.com/docs/cd/B14117_01/appdev.101/b10778/reference.htm#g1316297http://download.oracle.com/docs/cd/B14117_01/appdev.101/b10778/reference023.htm#i1079048http://download.oracle.com/docs/cd/B14117_01/appdev.101/b10778/reference.htm#g1316297http://download.oracle.com/docs/cd/B14117_01/appdev.101/b10778/reference024.htm#i1109327http://download.oracle.com/docs/cd/B14117_01/appdev.101/b10778/reference.htm#g1316297http://download.oracle.com/docs/cd/B14117_01/appdev.101/b10778/reference031.htm#i1118557http://download.oracle.com/docs/cd/B14117_01/appdev.101/b10778/reference021.htm#i1039640http://download.oracle.com/docs/cd/B14117_01/appdev.101/b10778/reference.htm#g1316297http://download.oracle.com/docs/cd/B14117_01/appdev.101/b10778/reference023.htm#i1079048http://download.oracle.com/docs/cd/B14117_01/appdev.101/b10778/reference.htm#g1316297http://download.oracle.com/docs/cd/B14117_01/appdev.101/b10778/reference024.htm#i1109327http://download.oracle.com/docs/cd/B14117_01/appdev.101/b10778/reference.htm#g1316297http://download.oracle.com/docs/cd/B14117_01/appdev.101/b10778/reference031.htm#i1118557 -
8/10/2019 Differnt Data Types in Oracle
20/29
"A1
The external datatype RA*is used for binary data or byte strin$s that are not to be interpreted or
processed by Oracle. RA*could be used( for example( for $raphics character se'uences. The
maximum len$th of a RA*column is 5999 bytes.
)hen RA*data in an Oracle table is converted to a character strin$( the data is represented in
hexadecimal code. "ach byte of RA*data is represented as two characters that indicate the value
of the byte( ran$in$ from 99 to **. If you input a character strin$ by usin$ RA*( then you must
use hexadecimal codin$.
"EF
The external datatype REFis a reference to a named datatype. To allocate a REFfor use in an
application( declare a variable as a pointer to a REF.
"O1ID
The external datatype RO*IDidentifies a particular row in a database table. The RO*IDis often
returned from a 'uery by issuin$ a statement similar to the followin$ example
SELECT RO*ID3 ;ar03 ;ar2 FROM "5@
2ou can then use the returned RO*IDin further DELETEstatements.
If you are performin$ a SELECTfor an UPDATEoperation( then the RO*IDis implicitly returned.
ST"IN/The external datatype STRINbehaves like the external datatype VARCHAR2datatype code 1,(
except that the external datatype STRINmust be null-terminated.
=ote that this datatype is different from OCCI STRINwhich corresponds to a C++ ST& strin$
datatype.
TIMESTAM2
The external datatype TIMESTAMPis an extension of the DATEdatatype. It stores the year( month(
and day of the DATEdatatype( plus hour( minute( and second values. Specify the TIMESTAMP
datatype as follows
TIMESTAMP 6(fractional_seconds_precision)7
The placeholder fractional_seconds_precisionoptionally specifies the number of di$its in
the fractional part of the SECONDdatetime field and can be a number in the ran$e 9 to :. The
default is ?. *or example( you specify TIMESTAMP(2)as a literal as follows
-
8/10/2019 Differnt Data Types in Oracle
21/29
TIMESTAMP K09J0J>0 2:/0K
=ote that this datatype is different from OCCI TIMESTAMP.
TIMESTAM2 1IT! LOCAL TIME #ONE
The external datatype TIMESTAMP*ITHTIME+ONETST+, is a variant of TIMESTAMPthat includes
an explicit time /one displacement in its value. The time /one displacement is the difference in
hours and minutes, between local time and Coordinated Dniversal Time DTC,( formerly
Ereenwich @ean Time. Specify the TIMESTAMP*ITHTIME+ONEdatatype as follows
TIMESTAMP(fractional_seconds_precision) *ITH TIME +ONE
The placeholder fractional_seconds_precisionoptionally specifies the number of di$its in
the fractional part of the SECONDdatetime field and can be a number in the ran$e to . The
default is .
Two TIMESTAMP*ITHTIME+ONEvalues are considered identical if they represent the same
instant in DTC( re$ardless of the TIME+ONEoffsets stored in the data.
TIMESTAM2 1IT! TIME #ONE
The external datatype TIMESTAMP*ITHTIME+ONEis a variant of TIMESTAMPthat includes a time
zone displacementin its value. The time /one displacement is the difference in hours and
minutes, between local time and Coordinated Dniversal Time DTC,( formerly Ereenwich @ean
Time. Specify the TIMESTAMP*ITHTIME+ONEdatatype as follows
TIMESTAMP 6(fractional_seconds_precision)7 *ITH TIME +ONE
The placeholder fractional_seconds_precisionoptionally specifies the number of di$its inthe fractional part of the S"CO=! datetime field and can be a number in the ran$e to . The
default is . *or example( you mi$ht specify TIMESTAMP()*ITHTIME+ONEas a literal as
follows
TIMESTAMP K09J0J>0 2:82/K
NSI/NED INT
The external datatype UNSINED INTis used for unsi$ned binary inte$ers. The si/e in bytes is
operatin$ system dependent. The host system architecture determines the order of the bytes in a
word. If the number bein$ output from Oracle is not an inte$er( the fractional part is discarded(and no error is returned. If the number to be returned exceeds the capacity of an unsi$ned inte$er
for the operatin$ system( Oracle returns an overflow on conversion error.
0A"C!A"
The external datatype VARCHARstore character strin$s of varyin$ len$th. The first two bytes
contain the len$th of the character strin$( and the remainin$ bytes contain the actual strin$. The
-
8/10/2019 Differnt Data Types in Oracle
22/29
specified len$th of the strin$ in a bind or a define call must include the two len$th bytes(
meanin$ the lar$est VARCHARstrin$ is ::>>bytes lon$( not ::>:. *or convertin$ lon$er
strin$s( use the LONVARCHARexternal datatype.
0A"C!A"%
The external datatype VARCHAR2is a variable-len$th strin$ of characters up to bytes.
0A"NM
The external datatype VARNUMis similar to the external datatype NUMBER( except that the first byte
contains the len$th of the number representation. This len$th value does not include the len$th
byte itself. 3eserve 55 bytes to receive the lon$est possible VARNUM. 2ou must set the len$th byte
when you send a VARNUMvalue to the database.
Table 4-4 (&)*#+ Examples
De-imal 0alue Len4t( Byte Exponent Byte Mantissa Bytes Terminator Byte
0 02. "> ">
: 2 0> ">
J: > 2 02
299 > 0 2.3 . ">
J299 0 93 > 02
0 2 0: 00 ">
02>:9 : 0 23 23 3 . ">
0A""A1
The externaldatatype VARRA*is similar to the external datatype RA*( except that the first two
bytes contain the len$th of the data. The specified len$th of the strin$ in a bind or a define call
must include the two len$th bytes. So the lar$est VARRA*strin$ that can be received or sent is
::>>bytes( not ::>:. *or convertin$ lon$er strin$s( use the LONVARRA*datatype.
NATI0E DOBLE
-
8/10/2019 Differnt Data Types in Oracle
23/29
This externaldatatype implements the I""" ;>0 standard double-precision floatin$ point
datatype. It is represented in the host systemAs native floatin$ point format. The datatype is stored
in the Oracle Server in a byte comparable canonical format( and re'uires B bytes for stora$e(
includin$ the len$th byte. It is an alternative to Oracle NUMBERand has the followin$ advanta$es
over NUMBER
*ewer bytes used in stora$e
@atches datatypes used by 3!4@S Clients
Supports a wider ran$e of values used in scientific calculations.
NATI0E FLOAT
This externaldatatype implements the I""" ;>0 sin$le-precision floatin$ point datatype. It is
represented in the host systemAs native floatin$ point format. The datatype is stored in the OracleServer in a byte comparable canonical format( and re'uires 0 bytes for stora$e( includin$ the
len$th byte. It is an alternative to Oracle NUMBERand has the followin$ advanta$es over NUMBER
*ewer bytes used in stora$e
@atches datatypes used by 3!4@S Clients
Supports a wider ran$e of values used in scientific calculations
Data Conversions
Table 0->lists the supported conversions from Oracle internal datatypes to external datatypes(
and from external datatypes to internal column representations. =ote the followin$ conditions
# REFstored in the database is converted to OCCIS1LTREFon output
OCCIS1LTREFis converted to the internal representation of a REFon input
# named datatype stored in the database is converted to OCCIS1LTNT'and represented
by a C structure in the application, on output
OCCIS1LTNT'represented by a C structure in an application, is converted to the
internal representation of the correspondin$ datatype on input
# LOBand a BFILEare represented by descriptors in OCCI applications( so there are no
input or output conversions
http://download.oracle.com/docs/cd/B14117_01/appdev.101/b10778/types.htm#g1032563http://download.oracle.com/docs/cd/B14117_01/appdev.101/b10778/types.htm#g1032563 -
8/10/2019 Differnt Data Types in Oracle
24/29
Table 4-, Data Conersions "et.een External and Internal datatypes
Internal Datatypes
External
Datatype
s
0A"C!A"
%
NMBE
"
LON
/
"O1I
D
DAT
E
"A
1
LON
/
"A1
C!A
"
BFLOA
T
BDOBL
E
CHAR IO IO IO IO1 IO. IO5 I5& 2 IO IO IO
CHAR+ IO IO IO IO1 IO. IO5 I5& 2 IO ) )
DATE IO ) I ) IO ) ) IO ) )
DECIMAL IO, IO I ) ) ) ) IO, ) )
FLOAT IO, IO I ) ) ) ) IO, IO IO
INTEER IO, IO I ) ) ) ) IO, IO IO
LON IO IO IO IO1 IO. IO5 IO5& 2 IO IO IIO
LON RA* O: ) I2& : ) ) IO IO O: ) )
LON
VARCHAR
IO IO IO IO1 IO. IO5 IO5& 2 IO IO IO
LON
VARRA*IO: ) I2& : ) ) IO IO IO: ) )
NUMBER IO, IO I ) ) ) ) IO, IO IO
OCCIBD,%5e
IO 1O I ) ) ) ) IO IO IO
OCCIBF,at
IO 1O I ) ) ) ) IO IO IO
OCCI
BytesIO: ) I2& : ) ) IO IO IO: ) )
OCCI
DateIO ) I ) IO ) ) IO ) )
OCCI IO, IO I ) ) ) ) IO, IO IO
-
8/10/2019 Differnt Data Types in Oracle
25/29
Internal Datatypes
External
Datatype
s
0A"C!A"
%
NMBE
"
LON
/
"O1I
D
DAT
E
"A
1
LON
/
"A1
C!A
"
BFLOA
T
BDOBL
E
N%m5er
OCCI
T$mestam
p
) ) ) ) ) ) ) ) ) )
RA* IO: ) I2& : ) ) IO IO IO: ) )
RO*ID I ) I IO ) ) ) I ) )
STL
str$n#IO IO IO IO1 IO. IO5 IO5 ) IO, IO,
STRIN IO IO IO IO1 IO. IO5 IO5& 2 IO IO IO
UNSINED IO, IO I ) ) ) ) IO, IO IO
VARCHAR IO IO IO IO1 IO. IO5 IO5 ) IO IO
VARCHAR
. IO IO IO IO
1
IO
.
IO
5
IO
5& 2
IO IO IO
VARNUM IO, IO I ) ) ) ) IO, IO IO
VARRA* IO: ) I2& : ) ) IO IO IO: ) )
Note:
Conversions valid for I 3In!t only6& O 3O!t!t Only6& IO 3In!t or
O!t!t6
1. @ust be in Oracle 3O)I! format for input returned in Oracle
-
8/10/2019 Differnt Data Types in Oracle
26/29
-
8/10/2019 Differnt Data Types in Oracle
27/29
E5TE"NAL DATAT&2ES
INTE"NAL DATAT&2ES
CLOB BLOB
OCCI Bytes ) IO
Data Conversions !or Date Ti)esta)p and Interval Datatypes
2ou can also use one of the character data types for the host variable used in a fetch or insert
operation from or to a datetime or interval column. Oracle will do the conversion between the
character data type and datetimeFinterval data type for you.
Table 4-0 Data Conersions for Date Timestamp and Interal Datatypes
External Types Internal Types
0A"C!A"6
C!A" DATE TS
TST
# TSLT#
INTE"0AL
&EA" TO
MONT!
INTE"0AL
DA& TO
SECOND
VARCHAR23 CHAR IO IO I
O
IO IO IO IO
STL Str$n# IO IO I
O
IO IO IO IO
DATE IO IO I
O
IO IO ) )
OCCI Date IO IO I
O
IO IO ) )
ANSI DATE IO IO I
O
IO IO ) )
TIMESTAMP (TS) IO IO I
O
IO IO ) )
OCCI T$mestamp IO IO I
O
IO IO ) )
-
8/10/2019 Differnt Data Types in Oracle
28/29
External Types Internal Types
0A"C!A"6
C!A" DATE TS
TST
# TSLT#
INTE"0AL
&EA" TO
MONT!
INTE"0AL
DA& TO
SECOND
TIMESTAMP *ITH
TIME +ONE (TST+)IO IO I
O
IO IO ) )
TIMESTAMP *ITH
LOCAL TIME +ONE
(TSLT+)
IO IO I
O
IO IO ) )
INTERVAL 'EAR TO
MONTHIO ) ) ) ) IO )
OCCI Inter;a'M IO ) ) ) ) IO )
INTERVAL DA' TO
SECONDIO ) ) ) ) ) IO
OCCI Inter;aDS IO ) ) ) ) ) IO
These consideration apply when convertin$ between !ate( Timestamp and Interval datatypes
)hen assi$nin$ a source with time /one to a tar$et without a time /one( the time /one
portion of the source is i$nored. On assi$nin$ a source without a time /one to a tar$et
with a time /one( the time /one of the tar$et is set to the sessionAs default time /one.
)hen assi$nin$ an Oracle DATEto a TIMESTAMP( the TIMEportion of the DATEis copied
over to the TIMESTAMP. )hen assi$nin$ a TIMESTAMPto Oracle DATE( the TIMEportion of
the result DATEis set to /ero. This is done to encoura$e mi$ration of Oracle DATEto ANSI
compliant DATETIMEdata types.
)hen assi$nin$ an ANSIDATEto an Oracle DATEor a TIMESTAMP( the TIMEportion ofthe Oracle DATEand the TIMESTAMPare set to /ero. )hen assi$nin$ an Oracle DATEor a
TIMESTAMPto an #=SI DATE( the TIMEportion is i$nored.
)hen assi$nin$ a DATETIMEto a character strin$( the DATETIMEis converted usin$ the
sessionAs default DATETIMEformat. )hen assi$nin$ a character strin$ to a DATETIME( the
-
8/10/2019 Differnt Data Types in Oracle
29/29
strin$ must contain a valid DATETIMEvalue based on the sessionAs default DATETIME
format.
)hen assi$nin$ a character strin$ to an INTERVAL( the character strin$ must be a valid
INTERVALcharacter format.
)hen convertin$ from TSLT+to CHAR( DATE( TIMESTAMPand TST+( the value will be
adusted to the session time /one.
)hen convertin$ from CHAR( DATE( and TIMESTAMPto TSLT+( the session time /one will
be stored in memory.
)hen assi$nin$ TSLT+to ANSIDATE( the time portion will be .
)hen convertin$ from TST+( the time /one which the time stamp is in will be stored in
memory.
)hen assi$nin$ a character strin$ to an interval( the character strin$ must be a valid
interval character format.
Coyri'$t E 1& .//5 Oracle Cororation
>ll i'$ts eserved%
Home Book
List
Content
s
Index Master Inde
x
Feedbac
k
Previo!s "ext
http://download.oracle.com/docs/cd/B14117_01/dcommon/html/cpyr.htmhttp://download.oracle.com/docs/cd/B14117_01/index.htmhttp://download.oracle.com/docs/cd/B14117_01/nav/portal_3.htmhttp://download.oracle.com/docs/cd/B14117_01/nav/portal_3.htmhttp://download.oracle.com/docs/cd/B14117_01/appdev.101/b10778/toc.htmhttp://download.oracle.com/docs/cd/B14117_01/appdev.101/b10778/toc.htmhttp://download.oracle.com/docs/cd/B14117_01/appdev.101/b10778/index.htmhttp://download.oracle.com/docs/cd/B14117_01/mix.101/b12039/toc.htmhttp://download.oracle.com/docs/cd/B14117_01/mix.101/b12039/toc.htmhttp://download.oracle.com/docs/cd/B14117_01/dcommon/html/feedback.htmhttp://download.oracle.com/docs/cd/B14117_01/dcommon/html/feedback.htmhttp://download.oracle.com/docs/cd/B14117_01/appdev.101/b10778/objects.htmhttp://download.oracle.com/docs/cd/B14117_01/appdev.101/b10778/metadata.htmhttp://download.oracle.com/docs/cd/B14117_01/appdev.101/b10778/objects.htmhttp://download.oracle.com/docs/cd/B14117_01/appdev.101/b10778/objects.htmhttp://download.oracle.com/docs/cd/B14117_01/appdev.101/b10778/metadata.htmhttp://download.oracle.com/docs/cd/B14117_01/appdev.101/b10778/metadata.htmhttp://download.oracle.com/docs/cd/B14117_01/dcommon/html/cpyr.htmhttp://download.oracle.com/docs/cd/B14117_01/index.htmhttp://download.oracle.com/docs/cd/B14117_01/index.htmhttp://download.oracle.com/docs/cd/B14117_01/nav/portal_3.htmhttp://download.oracle.com/docs/cd/B14117_01/nav/portal_3.htmhttp://download.oracle.com/docs/cd/B14117_01/nav/portal_3.htmhttp://download.oracle.com/docs/cd/B14117_01/appdev.101/b10778/toc.htmhttp://download.oracle.com/docs/cd/B14117_01/appdev.101/b10778/toc.htmhttp://download.oracle.com/docs/cd/B14117_01/appdev.101/b10778/toc.htmhttp://download.oracle.com/docs/cd/B14117_01/appdev.101/b10778/index.htmhttp://download.oracle.com/docs/cd/B14117_01/appdev.101/b10778/index.htmhttp://download.oracle.com/docs/cd/B14117_01/mix.101/b12039/toc.htmhttp://download.oracle.com/docs/cd/B14117_01/mix.101/b12039/toc.htmhttp://download.oracle.com/docs/cd/B14117_01/mix.101/b12039/toc.htmhttp://download.oracle.com/docs/cd/B14117_01/dcommon/html/feedback.htmhttp://download.oracle.com/docs/cd/B14117_01/dcommon/html/feedback.htmhttp://download.oracle.com/docs/cd/B14117_01/dcommon/html/feedback.htm