OracleDataTypes

advertisement
Overview
• Classes of datatypes available in Oracle 10g
–
–
–
–
–
–
–
Character
Numeric
Long, Raw
Dates/Times
Large Objects (LOBs)
ROWID
Specialized
1
Usage of Fonts
• Normal text
• SQL SYNTAX or ORACLE FUNCTIONS
• datatype or function parameter
• datatype or function optional parameter
2
Character Datatypes
• 4 Datatypes
– CHAR and NCHAR
• Fixed-length character literals
• NCHAR used to represent Unicode characters (UTF8)
• Store up to 2,000 bytes
– VARCHAR2 and NVARCHAR2
• Variable-length character literals
• Store up to 4,000 bytes
– VARCHAR
• DON’T USE!! But, it is synonymous with the VARCHAR2 datatype
• Shame on you if you use this datatype, Oracle may change this datatype
to use different comparison semantics in the future
– LONG (deprecated)
• Store up to (2 gig -1) of char data
3
Character Datatype Declarations
CHAR(size,{BYTE,CHAR ;DEFAULT=BYTE})
VARCHAR2(size,{BYTE,CHAR ;DEFAULT=BYTE})
NCHAR(size)
NVCHAR2(size)
• Size can also be specified globally in
NLS_LENGTH_SEMANTICS
4
Numeric Datatypes
• 3 Datatypes
– NUMBER
•
•
•
•
Fixed or floating point numbers
38 decimal digits of precision
Represent from 1x10-130 to 9.99 x 10125
Variable storage – 1 to 22 bytes per entry
– BINARY_FLOAT
• Stores floats in 32-bit IEEE 754 format
– BINARY_DOUBLE
• Stores floats in 64-bit IEEE 754 format
• BINARY_FLOAT and BINARY_DOUBLE advantages
– Usually faster computations than NUMBER operations
– Use less space to hold data
• IEEE 754 datatype disadvantages
– Fixed size may not be optimal use of space
5
Numeric Datatype Declarations
NUMBER(precision,size)
1 <= precision <= 37
-84 <= size <= 127
BINARY_FLOAT
BINARY_DOUBLE
6
Numeric Operators and Functions
• Operators
– Addition
– Multiplication
– Remainder (modulus)
– Subtraction
– Division
– Square Root
– Equality
• Functions
–
–
–
–
TO_BINARY_DOUBLE – Convert float or decimal to double
TO_BINARY_FLOAT – Convert double or decimal to float
TO_CHAR – Convert float or double to decimal
TO_NUMBER – Convert a float, double or decimal to a number
7
Time / Date Data
• Datatypes
– DATE
• Stored as {century, year, month, day, hour, minute, second}
– TIMESTAMP
• Same as DATE, but with fractional seconds
• Specify the number of seconds of precision, up to 9 digits
• TIMESTAMP WITH TIME ZONE
– Stores TIMESTAMP with displacement between local and UTC time
• TIMESTAMP WITH LOCAL TIME ZONE
– Stores TIMESTAMP but time is normalized to time of database upon entry.
Query results return time relative to user
– INTERVAL YEAR(precision)TO MONTH
– INTERVAL MONTH(precision)TO SECOND
8
Date / Time Operators and Functions
• Operators
– Addition, subtraction, equality
• Functions
–
–
–
–
–
–
ANSI Literal – ‘2009-09-16’
TO_DATE(‘09-SEP-16 16:00’, ‘YY-MON-DD HH24:MI’)
SYSDATE – System Date (current time)
TRUNC(date) – Truncates sets time portion to midnight
INTERVAL YEAR [precision] TO MONTH
INTERVAL DAY TO SECOND
9
RAW and LONG RAW Datatypes
• Intended for binary data or byte strings not interpreted
by Oracle Database
• Intended to hold binary data such as graphics,
documents, etc.
• Oracle recommends converting these types to LOBs
10
Large Objects
• About
– LOBs are used to store binary files
– Query results including LOBs returns LOB locator
• Datatypes
– CLOB and NCLOB
• Store up to (4 gig -1) * (DMBS_LOB.GETCHUNCKSIZE) of char data
– BLOB – Binary Large Object
• Store up to (4 gig -1) of data
– BFILE – Binary File
• Store up to 4 gigabytes of data
• Stored in a separate file on the server
• Administrator responsible that the files exist and can be accessed
11
ROWID Datatype
• Row addresses in Oracle
• Access row addresses by querying ROWID
• Extended rowids
– Supports partitioned tables and indexes without ambiguity
12
Specialized Datatypes
• Other types of data that can be represented
–
–
–
–
–
–
Geographic
Multimedia
Searchable Text
XML
Dynamically Typed Data
ANSI/ISO, DB2 and SQL/DS Data
13
Geographic Datatype
• MDSYS.SDO_GEOMETRY
– Must have installed Oracle Spatial
– Object created using
CREATE TYPE SDO_GEOMETRY AS OBJECT (
SDO_GTYPE
NUMBER,
SDO_SRID
NUMBER,
SDO_POINT
SDO_POINT_TYPE,
SDO_ELEM_INFO
SDO_ELEM_INFO_ARRAY,
SDO_ORDINATES
SDO_ORDINATE_ARRAY);
•
•
•
•
•
SDO_GTYPE – reference to type of point (line, curve, polygon, etc)
SDO_SRID – reference for the spatial coordinate system
SDO_POINT – (x,y,z) coordinate of point
SDO_ELEM_INFO –
SDO_ORDINATES – lkj
14
Regular Expressions Overview
• Regular expressions are a language for pattern matching
within text (string data)
• Useful when you want to find like strings or to extract
information from strings
• Portable-ish – syntax can be used across applications,
though some applications use more a more feature rich
syntax than others
• Syntax is interpreted through a Regex Engine
– DFA – Very fast, tends to use more memory, uses longest
leftmost matching
– NFA – Uses backtracking, exhaustively searches all
permutations of the regex
15
Regex Syntax Basics
Syntax Name
Example Matches
.
Any Character
O.ama
Osama, Obama, Omama
+
One or more characters
Be+r
Ber, Beer, Beeeeeeeeeeeeeer
?
Zero or One
Stuff?
Stuf, Stuff
*
Zero or More
Foo*
Fo, Foo, Fooooooooooooooooo
|
Alternation
cat|bat
cat, bat
{m}
Exact Count
Clas{2}
Class
{m,}
At least
SQ{1,}L
SQL, SQQQQQQQQL
{m,n}
In between
Ap{1,3}le
Aple, Apple, Appple
(…)
Grouping, Sub-expression
(fa|fi)t
fat, fit
[ ...]
Character set
[bc]at
bat, cat
[^ ...]
Not in character set
[^bc]at
fat, hat,
^
Beginning of line
^The
The quick brown fox, The lazy dog
$
End of line
s$
Sleeps, sleeps, eats
\d
Any digit
\d\d
10, 20, 99
\w
Any word character
\w\w\w
www, w_w, 222
\s
Any space character
\s
tab, newline, space, carriage return
16
Regex Functions
• REGEXP_LIKE(columnName,pattern)
– Used in a WHERE clause to search for a pattern
• REGEXP_REPLACE(string,pattern,repl,pos,occ,m_param)
– Replaces a matched pattern with a specified string
• REGEXP_INSTR(string,pattern,pos,occ,ret,m_param)
– Searches for an instance of a pattern and returns the position
in the string where that pattern is found
• REGEXP_SUBSTR(string,pattern,pos,occ,m_param)
– Returns a substring matching the regex pattern specified
17
References
•
•
•
•
•
•
Oracle 10g Application Developer’s Guide
Oracle 10g Call Interface Programmer’s Guide
Oracle 10g SQL Reference
Oracle 10g Spatial User’s Guide and Reference
Mastering Regular Expressions by Jeffrey Friedl
Wikipedia
– IEEE 754
18
Download