Oracle Database 10gの新しいSQL性能: 正規表現、ネイティブ値、LOBパフォーマンスおよびその他の機能

Similar documents
Oracle Database 10gの新しいSQL機能

ストラドプロシージャの呼び出し方

1 SQL Server SQL Oracle SQL SQL* Plus PL/SQL 2 SQL Server SQL Server SQL Oracle SQL SQL*Plus SQL Server GUI 1-1 osql 1-1 Transact- SQL SELECTFROM 058

1,.,,,., RDBM, SQL. OSS,, SQL,,.

_02_3.ppt

Microsoft Word - 430_15_Developing_Stored_Procedure.doc

_02-4.ppt

橡実践Oracle Objects for OLE

PowerPoint -O80_REP.PDF

橡j_Oracle_whitepaper.PDF

日本オラクル株式会社

領域サイズの見積方法

,, create table drop table alter table

XML Consortium & XML Consortium 1 XML Consortium XML Consortium 2

1 ex01.sql ex01.sql ; user_id from (select user_id ;) user_id * select select (3+4)*7, SIN(PI()/2) ; (1) select < > from < > ; :, * user_id user_name

Oracle Lite Tutorial

Microsoft PowerPoint - db03-5.ppt

キャラクタ・セットの移行に関するベスト・プラクティス

Oracle Spatial

tkk0408nari

Oracle Lite Tutorial

Oracle XML DB によるスケーラビリティおよびパフォーマンス検証 - MML v.3.0

3 Powered by mod_perl, Apache & MySQL use Item; my $item = Item->new( id => 1, name => ' ', price => 1200,

Oracle Rdb: PowerPoint Presentation

Windowsユーザーの為のOracle Database セキュリティ入門

TopLink È... 3 TopLink...5 TopLink åø... 6 TopLink å Workbench O/R ~... 8 Workbench À ~... 8 Foundation Library å... 8 TopL

橡ExCtrlPDF.PDF

D1印刷用.PDF

n n n ( ) n Oracle 16 PostgreSQL 3 MySQL

PostgreSQL カンファレンス 2013 証券取引バックオフィスにおける Oracle から PostgreSQL への マイグレーション SBI ジャパンネクスト証券株式会社 イアン バーウィック

TopLink å SampleClient.java... 5 Ò readallsample() querysample() cachesample() Ç..

FileMaker ODBC and JDBC Guide

: ORDER BY

Oracle Application Server 10g Release 3(10.1.3)- アジャイル・エンタープライズ(俊敏な企業)のためのデータ・アクセス

PowerRDBconnector説明書(SQLServer編)

JavaScript の使い方

…l…b…g…‘†[…N…v…“…O…›…~…fi…OfiÁŸ_

untitled

Oracle Database Connect 2017 JPOUG

OM.indd

FileMaker 16 ODBC と JDBC ガイド

CAC

eラーニング資料 e ラーニングの制作目標 データベース編 41 ページデータベースの基本となる概要を以下に示す この内容のコースで eラーニングコンテンツを作成予定 データベース管理 コンピュータで行われる基本的なデータに対する処理は 次の 4 種類です 新しいデータを追加する 既存のデータを探索

~~~~~~~~~~~~~~~~~~ wait Call CPU time 1, latch: library cache 7, latch: library cache lock 4, job scheduler co

IBM Software Group DB2 Information Management Software DB2 V8 XML SQL/XML 2 XML XML UDF XMLExtender XML XML XMLCollection, XMLColumn XML UDF Informati

KWCR3.0 instration

BC4J...4 BC4J Association JSP BC4J JSP OC4J

Wiki Wiki Wiki...

データベース認識Webサービス

imt_817_tuning_11_1822.PDF

Chapter Two

Warehouse Builderにおける予測分析の使用

052-XML04/fiÁ1-part3-’ÓŠ¹

Oracle Lite Tutorial

untitled

情報の構造とデータ処理

Oracle Rdb: SQL Update

Oracle Real Application Clusters 10g Release 2: Microsoft SQL Server 2005との技術的比較

FileMaker 15 ODBC と JDBC ガイド

PowerPoint Presentation

Caché SQL に関するよくある質問

untitled

多言語データベース/アプリケーションを目的としたUnicodeデータ型への移行

FileMaker ODBC と JDBC ガイド

ii II Web Web HTML CSS PHP MySQL Web Web CSS JavaScript Web SQL Web

ORACLEデータベース10G データ・ポンプ: 超高速データ移動ユーティリティの基盤


はじめに 本書では GridDB Advanced Edition における SQL の記述方法および 注意事項について記載しています GridDB Advanced Edition をご使用になる前に 必ずお読みください なお 本書で説明する機能は GridDB Advanced Edition

Oracle9i

Oracle9i Reportsのチューニング

自己管理型データベース: アプリケーションおよびSQLチューニング・ガイド

※サンプルアプリケーションを固めたファイル(orcasample

untitled

Microsoft Word - Android_SQLite講座_画面800×1280

intra-mart Accel Platform — TableMaintenance ユーザ操作ガイド   第7版   None

ハイウォーターマークを知る

intra-mart Accel Platform — TableMaintenance ユーザ操作ガイド   第8版  

FileMaker ODBC and JDBC Guide

untitled

Sequel のすすめ 私が SQL を嫌いな理由 とみたまさひろ RubyHiroba Sequel のすすめ - 私が SQL を嫌いな理由 Powered by Rabbit 2.0.7

Chapter

9iAS_DEV.PDF

Microsoft PowerPoint - 3-Forms-Others.ppt

SQL (2) データベース論 Ⅰ 第 7 回 URL 作成者末次文雄 C

Postgres Plus Advanced Server 9.3パーティションテーブルの特徴と性能検証レポート

dbMAGIC Ver8.2 SQLガイド

Exam : J Title : Querying Microsoft SQL Server 2012 Version : DEMO 1 / 10

ValueHolder... 9 Customer.java Oracle TopLink 10g(10.1.3) È Volume3 2

DB12.1 Beta HandsOn Seminar

復習 (SQL 文 ) 3/6 復習 (SQL 文 ) 4/6 表の作成 CREATE TABLE...; 表の削除 DROP TABLE テーブル名 ; 表内のデータが全て消えてしまう. 表内のデータを得る SELECT 列名 FROM 表名...; 表にデータを挿入する. INSERT INTO

122.pdf

Gartner Day

プレポスト【問題】

Microsoft PowerPoint pptx

OOW_I06


listings-ext

PowerPoint -O80_PSO_AFO.PDF

PostgreSQLによる データベースサーバ構築技法

Oracle Warehouse Builder 10g Release 2 リポジトリ拡張Cookbook

Transcription:

Oracle Database 10g SQL : LOB Geoff Lee, Oracle Corporation Peter Linsley, Oracle Corporation Jonathan Gennick, O'Reilly & Associates Oracle SQL Oracle Detabase Oracle SQL API Oracle Database 10g SQL Oracle 1 Oracle Database 10g SQL LOB SQL E-Business Oracle Database 10g SQL IEEE/POSIX IEEE 754 Standard for Binary Floating-Point Arithmetic IEEE754 Oracle Database 10g XML Java LOB Oracle Database 10g SQL API LOB LOB 4 ANSI SQL Multiset XML Java Oracle Database 10g SQL : LOB Oracle Corporation NEW SQL CAPABILITIES IN ORACLE DATABASE 10G: REGULAR EXPRESSIONS, NATIVE NUMBER, LOB PERFORMANCE, AND MORE 1

Oracle Regular Expression 3 Web DNA Oracle Regular Expression SQL PL/SQL Oracle Regular Expression Oracle Regular Expression Web XXXXXXXXXX 10 CHAR10 XXXXXX-XXXX DBA SQL*Plus REPLACE REGEXP_REPLACE Oracle Database 10g SQL : LOB Oracle Corporation NEW SQL CAPABILITIES IN ORACLE DATABASE 10G: REGULAR EXPRESSIONS, NATIVE NUMBER, LOB PERFORMANCE, AND MORE 2

LIKE REGEXP_LIKE Oracle Database 10g Oracle Database 10g Update PL/SQL Oracle Regular Expression SQL Oracle Regular Expression POSIX BRE ERE UNIX Oracle Regular Expression POSIX ERE Oracle Regular Expression Oracle Database 10g SQL : LOB Oracle Corporation NEW SQL CAPABILITIES IN ORACLE DATABASE 10G: REGULAR EXPRESSIONS, NATIVE NUMBER, LOB PERFORMANCE, AND MORE 3

Oracle Regular Expression SQL PL/SQL SQL REGEXP_LIKE REGEXP_SUBSTR REGEXP_INSTR REGEXP_REPLACE SQL SQL C. a? a 0 1 a* a 0 a+ a 1 Dot Quantifier Quantifier Quantifier a b a{m} a{m,} a{m,n} a b a m a m a m n Alternation Quantifier Quantifier Quantifier [abc] ab c Bracket Expression ( ) n n Subexpression Backreference [:cc:] Character Class [.ce.] Collation Element [=ec=] Equivalence Class POSIX Oracle Oracle Database 10g SQL : LOB Oracle Corporation NEW SQL CAPABILITIES IN ORACLE DATABASE 10G: REGULAR EXPRESSIONS, NATIVE NUMBER, LOB PERFORMANCE, AND MORE 4

Oracle Regular Expression. 1 1 Oracle Oracle Regular Expression CHARVARCHAR2CLOBNCHARNVARCHAR NCLOB REGEXP_LIKE REGEXP_LIKE REGEXP fly flyflying flew flown flies SELECT c1 FROM t1 WHERE REGEXP_LIKE(c1, fl(y(ing)? (ew) (own) (ies)) ); REGEXP_SUBSTR REGEXP_INSTR SELECT REGEXP_SUBSTR( the bird flew over the river, fl(y(ing)? (ew) (own) (ies)) ) FROM dual; flew REGEXP_INSTR REGEXP_INSTR INSTR REGEXP_INSTR SQL Oracle Database 10g SQL : LOB Oracle Corporation NEW SQL CAPABILITIES IN ORACLE DATABASE 10G: REGULAR EXPRESSIONS, NATIVE NUMBER, LOB PERFORMANCE, AND MORE 5

REGEXP_REPLACE Oracle Regular Expression HTML REGEXP_REPLACE HTML SELECT REGEXP_REPLACE (c1, <[^>]+> ) FROM t1; n n n REPLACE DDL Oracle Regular Expression VARCHAR2 CREATE TABLE t1 (c1 VARCHAR2(20), CHECK (REGEXP_LIKE(c1, '^[[:alpha:]]+$'))); INSERT INTO t1 VALUES ('newuser'); 1 row created. INSERT INTO t1 VALUES ('newuser1'); ORA-02290:check constraint violated INSERT INTO t1 VALUES ('new-user'); ORA-02290:check constraint violated Oracle Database 10g SQL : LOB Oracle Corporation NEW SQL CAPABILITIES IN ORACLE DATABASE 10G: REGULAR EXPRESSIONS, NATIVE NUMBER, LOB PERFORMANCE, AND MORE 6

Oracle Regular Expression 1 1 functional index CREATE INDEX t1_ind ON t1 (REGEXP_SUBSTR(c1, 'a')); SELECT c1 FROM t1 WHERE REGEXP_SUBSTR(c1, 'a') = 'a'; 1 REGEXP_REPLACE CREATE VIEW v1 AS SELECT empno, REGEXP_REPLACE(email, '(.)', '1 ) email FROM emp; SELECT email FROM v1 WHERE empno = 7369; j d o e @ s o m e w h e r e. c o m PL/SQL Oracle Regular Expression SQL PL/SQL 1 src := REGEXP_REPLACE (src, <regexp_1> ); src := REGEXP_REPLACE (src, <regexp_2> ); src := REGEXP_REPLACE (src, <regexp_3> ); PL/SQL n PL/SQL Oracle Database 10g SQL : LOB Oracle Corporation NEW SQL CAPABILITIES IN ORACLE DATABASE 10G: REGULAR EXPRESSIONS, NATIVE NUMBER, LOB PERFORMANCE, AND MORE 7

CREATE FUNCTION regexp_subx ( input VARCHAR2, regx VARCHAR2, subx NUMBER) RETURN VARCHAR2 IS ret VARCHAR2(4000); BEGIN ret := REGEXP_SUBSTR (input, regx); ret := REGEXP_REPLACE (ret, regx, subx); RETURN (ret); END regexp_subx; / LIKE SQL REGEXP_LIKE REGEXP_LIKE REGEXP_LIKE Oracle Regular Expression LIKE PL/SQL Oracle Database 10g SQL : LOB Oracle Corporation NEW SQL CAPABILITIES IN ORACLE DATABASE 10G: REGULAR EXPRESSIONS, NATIVE NUMBER, LOB PERFORMANCE, AND MORE 8

Oracle Database 10g 2 BINARY_FLOAT BINARY_DOUBLE 32-bit IEEE 754 64-bit IEEE 754 Oracle NUMBER BINARY_FLOAT BINARY_DOUBLE BINARY_FLOAT BINARY_DOUBLE BINARY_FLOAT BINARY_DOUBLE IEEE 754 binary_float binary_double RDBMS 1 binary_float binary_double binary_float binary_double binary_float binary_double binary_float binary_double order by group by binary_float binary_double Oracle RDBMS Oracle Number Oracle Number 10 10 Oracle Number Oracle Number Java XML IEEE 754 Standard for Binary Floating-Point Arithmetic IEEE754 OLAP BINARY_FLOAT BINARY_DOUBLE Oracle Number Oracle Number 1 binary_float binary_double RDBMS Java XML IEEE 754 Oracle Number Oracle Number Oracle Number 10 binary_float binary_double 2 Oracle Database 10g SQL : LOB Oracle Corporation NEW SQL CAPABILITIES IN ORACLE DATABASE 10G: REGULAR EXPRESSIONS, NATIVE NUMBER, LOB PERFORMANCE, AND MORE 9

Oracle Number binary_float binary_double binary_float binary_double Oracle Number 5 10 binary_float binary_double Oracle Number 122 IEEE 754 Oracle Number sign exponent significand 3 base (-1) sign. significand. base exponent 3 IEEE 754 Oracle NUMBER IEEE 754 32 1 64 1 Oracle NUMBER 3.40282347e+38 1.7976931348623157e+308 10e125 1.17549435e-38 2.2250738585072014e-308 1e-130 1.17549421e-38 2.2250738585072009e-308 1.40129846e-45 4.9406564584124654e-324 6-9 15-17 38-40 Oracle Database 10g SQL : LOB Oracle Corporation NEW SQL CAPABILITIES IN ORACLE DATABASE 10G: REGULAR EXPRESSIONS, NATIVE NUMBER, LOB PERFORMANCE, AND MORE 10

equal to not equal to greater than greater than or equal to less than less or equal to unordered 0 0 +0 0 +0 1 NaNNot a Number not equal to false 1 NaNNot a Number not equal to true Java IEEE 754 IEEE 754 IA-32 IA-64 NaN expr IS NAN true 10 float double double float float double decimal decimal float double float double float double Oracle Database 10g SQL : LOB Oracle Corporation NEW SQL CAPABILITIES IN ORACLE DATABASE 10G: REGULAR EXPRESSIONS, NATIVE NUMBER, LOB PERFORMANCE, AND MORE 11

SQL ABSACOS binary_float binary_double SQL> select ceil(1.2343243e2f) from dual; CEIL(1.2343243E2F) ------------------ 1.24E+002 ORDER BY HAVING SELECT GROUP BY Oracle GROUP BY GROUP BY GROUP BY 1 Oracle AVGCORRMAXMINSTDDEV Window Sliding Window ORDER BY WHERE GROUP BY HAVING ORDER BY AVGCORRMAXMINSTDDEV 1 Oracle Database 10g 6 NOT NULL NULL NULL Oracle Database 10g SQL : LOB Oracle Corporation NEW SQL CAPABILITIES IN ORACLE DATABASE 10G: REGULAR EXPRESSIONS, NATIVE NUMBER, LOB PERFORMANCE, AND MORE 12

1 NOT NULL NULL CHECK REF REF REF REF SQL> create table floating_point_table1 ( fltnnull binary_float constraint flt_null not null, dblnnull binary_double constraint dbl_null not null, fltunq binary_float constraint flt_unq unique, dblunq binary_double constraint dbl_unq unique, fltchk binary_float constraint flt_chk check ( fltchk is not nan ), dblchk binary_double constraint dbl_chk check ( dblchk is not infinite), fltprm binary_float constraint flt_prm primary key); Table created. SQL> create table floating_point_table2 ( dblprm binary_double constraint dbl_prm primary key, fltfrn binary_float constraint flt_frn references floating_point_table1(fltprm) on delete cascade); Table created. SQLPL/SQLOCIOCCIPro*C/C++JDBC XMLXML SQL SQL BINARY_FLOAT BINARY_DOUBLE SQL SQL BINARY_FLOAT BINARY_DOUBLE SQL expr Oracle Database 10g SQL : LOB Oracle Corporation NEW SQL CAPABILITIES IN ORACLE DATABASE 10G: REGULAR EXPRESSIONS, NATIVE NUMBER, LOB PERFORMANCE, AND MORE 13

OCI SQLT_BFLOAT SQLT_BDOUBLE Oracle Call InterfaceOCI IEEE 754 SQLT_BFLOAT SQLT_BDOUBLE IEEE 754 C float double OCI SQLT_BFLOAT SQLT_BDOUBLE BINARY_FLOAT BINARY_DOUBLE Oracle SQL BINARY_FLOAT BINARY_DOUBLE Oracle LOB LOB Oracle Database 10g Reference on Read and Copy on Write LOB LOB LOB LOB LOB 1 LOB 1 0 LOB LOB LOB LOB LOB LOB 1 LOB LOB LOB BLOBCLOB NCLOB 42949672954-1(2^32 1)4 unsigned int UB4 LOB 4 1*db_block_size LOB 232 8128 LOB 4 LOB DBMS_LOB PL/SQL JDBCJava Database Connectivity Java OCIOracle Call Interface C Oracle Database 10g SQL : LOB Oracle Corporation NEW SQL CAPABILITIES IN ORACLE DATABASE 10G: REGULAR EXPRESSIONS, NATIVE NUMBER, LOB PERFORMANCE, AND MORE 14

LOB LOB DB_BLOCK_SIZE DB_BLOCK_SIZE 4 1 232 8128 LOB LOB CLOB NCLOB BLOB PL/SQLJDBC OCI LOB LOB DBMS_LOB PL/SQL API DBMS_LOB.GET_STORAGE_LIMIT Oracle JDBC JDBC LOB ASI LOB Oracle Call Interface API LOB LOB OCILobRead() OCILobWriteAppend() OCILobWrite()calls OCI OCI 4GB LOB OCILobRead2()OCIWriteAppend2() OCILobWrite2() oraub8 CLOB NCLOB Unicode CLOB NCLOB TO_CLOB TO_NCLOB SQL PL/SQL Oracle Database 10g DML SQL IN OUT PL/SQL PL/SQL 1 CREATE TABLE my_table (nclob_col NCLOB); DECLARE clob_var CLOB; nclob_var NCLOB; BEGIN clob_var := 'clob data'; -- initialize the CLOB value; -- Bind a CLOB into an NCLOB column INSERT INTO my_table VALUES (clob_var); SELECT nclob_col INTO clob_var FROM my_table; -- Define an NCLOB column as a CLOB var END; / Oracle Database 10g SQL : LOB Oracle Corporation NEW SQL CAPABILITIES IN ORACLE DATABASE 10G: REGULAR EXPRESSIONS, NATIVE NUMBER, LOB PERFORMANCE, AND MORE 15

2 CREATE FUNCTION TRY_ME (a IN CLOB) RETURN NCLOB is BEGIN RETURN a; END; / DECLARE clob_var CLOB; nclob_var NCLOB; BEGIN nclob_var:= 'nclob data'; /* Pass an NCLOB into a function which takes a CLOB Return an NCLOB variable to a CLOB variable. */ clob_var:=try_me(nclob_var); end; / BFILE CLOB/NCLOB BFILE LOB LOADFROMFILE2() CLOB NCLOB DBMS_LOB OCI LOADFROMFILE2() csid ID BFILE CLOB NCLOB BFILE CLOB NCLOB BFILE LOB UCS2 UCS22 Unicode CLOB csid NCLOB csid : BFILE CharacterSet1 : LOB CharacterSet2 cs1 cs2 if (cs1!=cs2) cs1 cs2 cs1 UCS2 cs1 UCS2 Oracle Database 10g SQL : LOB Oracle Corporation NEW SQL CAPABILITIES IN ORACLE DATABASE 10G: REGULAR EXPRESSIONS, NATIVE NUMBER, LOB PERFORMANCE, AND MORE 16

LOB LOB Oracle Database 10g SQL users CREATE TABLE people_tab ( people_column people_typ ) NESTED TABLE people_column STORE AS people_column_nt (TABLESPACE users); TABLESPACE ALTER TABLE MOVE ALTER TABLE MOVE ALTER TABLE MOVE ALTER TABLE people_tab MOVE TABLESPACE users; ALTER TABLE people_column_nt MOVE TABLESPACE example; people_tab users example ANSI SQL MULTISET Oracle Database 10g NESTED TABLE MULTISET Oracle VARRAY NESTED TABLE 2 1 Oracle Database 10g SQL : LOB Oracle Corporation NEW SQL CAPABILITIES IN ORACLE DATABASE 10G: REGULAR EXPRESSIONS, NATIVE NUMBER, LOB PERFORMANCE, AND MORE 17

= <> 2 2 CREATE TYPE person_typ AS OBJECT ( idno NUMBER, name VARCHAR2(30), phone VARCHAR2(20), MAP MEMBER FUNCTION get_idno RETURN NUMBER ); / CREATE TYPE BODY person_typ AS MAP MEMBER FUNCTION get_idno RETURN NUMBER IS BEGIN RETURN idno; END; END; / CREATE TYPE people_typ AS TABLE OF person_typ; / CREATE TABLE students ( graduation DATE, math_majors people_typ, chem_majors people_typ, physics_majors people_typ) NESTED TABLE math_majors STORE AS math_majors_nt NESTED TABLE chem_majors STORE AS chem_majors_nt NESTED TABLE physics_majors STORE AS physics_majors_nt; INSERT INTO students (graduation) VALUES ('01-JUN-03'); UPDATE students SET math_majors = people_typ (person_typ(12, 'Bob Jones', '111-555-1212'), person_typ(31, 'Sarah Chen', '111-555-2212'), person_typ(45, 'Chris Woods', '111-555-1213')), chem_majors = people_typ (person_typ(51, 'Joe Lane', '111-555-1312'), person_typ(31, 'Sarah Chen', '111-555-2212'), person_typ(52, 'Kim Patel', '111-555-1232')), Oracle Database 10g SQL : LOB Oracle Corporation NEW SQL CAPABILITIES IN ORACLE DATABASE 10G: REGULAR EXPRESSIONS, NATIVE NUMBER, LOB PERFORMANCE, AND MORE 18

physics_majors = people_typ (person_typ(12, 'Bob Jones', '111-555-1212'), person_typ(45, 'Chris Woods', '111-555-1213')) WHERE graduation = '01-JUN-03'; SELECT p.name FROM students, TABLE(physics_majors) p WHERE math_majors = physics_majors; no rows selected person_typ IN IN NULL SELECT p.idno, p.name FROM students, TABLE(physics_majors) p WHERE physics_majors IN (math_majors, chem_majors); no rows selected SUBMULTISET [OF] OF SUBMULTISET SELECT p.idno, p.name FROM students, TABLE(physics_majors) p WHERE physics_majors SUBMULTISET OF math_majors; IDNO NAME ---------- ------------------------------ 12 Bob Jones 45 Chris Woods Oracle Database 10g SQL : LOB Oracle Corporation NEW SQL CAPABILITIES IN ORACLE DATABASE 10G: REGULAR EXPRESSIONS, NATIVE NUMBER, LOB PERFORMANCE, AND MORE 19

MEMBER [OF] NOT MEMBER [OF] OF SELECT graduation FROM students WHERE person_typ(12, 'Bob Jones', '1-800-555-1212') MEMBER OF math_majors; GRADUATION ---------- 01-JUN-03 person_typ (12, 'Bob Jones', '1-800-555-1212') math_majors IS [NOT] EMPTY NULL NULL NULL SELECT p.idno, p.name FROM students, TABLE(physics_majors) p WHERE physics_majors IS NOT EMPTY; IDNO NAME ---------- ------------------------------ 12 Bob Jones 45 Chris Woods IS [NOT] A SET SELECT p.idno, p.name FROM students, TABLE(physics_majors) p WHERE physics_majors IS A SET; IDNO NAME ---------- ------------------------------ 12 Bob Jones 45 Chris Woods Oracle Database 10g SQL : LOB Oracle Corporation NEW SQL CAPABILITIES IN ORACLE DATABASE 10G: REGULAR EXPRESSIONS, NATIVE NUMBER, LOB PERFORMANCE, AND MORE 20

MULTISET CARDINALITY CARDINALITY VARRAY NUMBER VARRAY NULL NULL SELECT CARDINALITY(math_majors) FROM students; CARDINALITY(MATH_MAJORS) ------------------------ 3 COLLECT COLLECT CAST COLLECT MULTISET EXCEPT MULTISET EXCEPT 2 1 2 ALL DISTINCT ALL ALL ntab1 MULTISET EXCEPT ALL ntab2 ntab2 ntab1 ntab1 m ntab2 n m n m n DISTINCT ntab1 ntab2 SELECT math_majors MULTISET EXCEPT physics_majors FROM students WHERE graduation = '01-JUN-03'; MATH_MAJORSMULTISETEXCEPTPHYSICS_MAJORS(IDNO, NAME, PHONE) ------------------------------------------------------------------ PEOPLE_TYP(PERSON_TYP(31, 'Sarah Chen', '111-555-2212')) Oracle Database 10g SQL : LOB Oracle Corporation NEW SQL CAPABILITIES IN ORACLE DATABASE 10G: REGULAR EXPRESSIONS, NATIVE NUMBER, LOB PERFORMANCE, AND MORE 21

MULTISET INTERSECTION MULTISET INTERSECT 2 ALL DISTINCT ALL ALL ntab1 m ntab2 n MIN (m, n) DISTINCT NULL SELECT math_majors MULTISET INTERSECT physics_majors FROM students WHERE graduation = '01-JUN-03'; MATH_MAJORSMULTISETINTERSECTPHYSICS_MAJORS(IDNO, NAME, PHONE) ------------------------------------------------------------------ PEOPLE_TYP(PERSON_TYP(12, 'Bob Jones', '111-555-1212'), PERSON_TYP(45, 'Chris Woods', '111-555-1213')) MULTISET UNION MULTISET UNION 2 ALL DISTINCT ALL ALL NULL ntab1 ntab2 ntab1 m ntab2 n m + n DISTINCT NULL SELECT math_majors MULTISET UNION DISTINCT physics_majors FROM students WHERE graduation = '01-JUN-03'; MATH_MAJORSMULTISETUNIONDISTINCTPHYSICS_MAJORS(IDNO, NAME, PHONE) ----------------------------------------------------------- PEOPLE_TYP (PERSON_TYP(12, 'Bob Jones', '111-555-1212'), PERSON_TYP(31, 'Sarah Chen', '111-555-2212'), PERSON_TYP(45, 'Chris Woods', '111-555-1213')) SELECT math_majors MULTISET UNION ALL physics_majors FROM students WHERE graduation = '01-JUN-03'; MATH_MAJORSMULTISETUNIONALLPHYSICS_MAJORS(IDNO, NAME, PHONE) ----------------------------------------------------------- PEOPLE_TYP (PERSON_TYP(12, 'Bob Jones', '111-555-1212'), PERSON_TYP(31, 'Sarah Chen', '111-555-2212'), PERSON_TYP(45, 'Chris Woods', '111-555-1213'), PERSON_TYP(12, 'Bob Jones', '111-555-1212'), PERSON_TYP(45, 'Chris Woods', '111-555-1213')) Oracle Database 10g SQL : LOB Oracle Corporation NEW SQL CAPABILITIES IN ORACLE DATABASE 10G: REGULAR EXPRESSIONS, NATIVE NUMBER, LOB PERFORMANCE, AND MORE 22

POWERMULTISET POWERMULTISET POWERMULTISET 32 SELECT * FROM TABLE(POWERMULTISET( people_typ ( person_typ(12, 'Bob Jones', '1-800-555-1212'), person_typ(31, 'Sarah Chen', '1-800-555-2212'), person_typ(45, 'Chris Woods', '1-800-555-1213')))); COLUMN_VALUE(IDNO, NAME, PHONE) ----------------------------------------------------------- PEOPLE_TYP (PERSON_TYP(12, 'Bob Jones', '1-800-555-1212')) PEOPLE_TYP (PERSON_TYP(31, 'Sarah Chen', '1-800-555-2212')) PEOPLE_TYP (PERSON_TYP(12, 'Bob Jones', '1-800-555-1212'), PERSON_TYP(31, 'Sarah Chen', '1-800-555-2212')) PEOPLE_TYP (PERSON_TYP(45, 'Chris Woods', '1-800-555-1213')) PEOPLE_TYP (PERSON_TYP(12, 'Bob Jones', '1-800-555-1212'), PERSON_TYP (45, 'Chris Woods', '1-800-555-1213')) PEOPLE_TYP (PERSON_TYP(31, 'Sarah Chen', '1-800-555-2212'), PERSON_TYP(45, 'Chris Woods', '1-800-555-1213')) PEOPLE_TYP (PERSON_TYP(12, 'Bob Jones', '1-800-555-1212'), PERSON_TYP(31, 'Sarah Chen', '1-800-555-2212'), PERSON_TYP(45, 'Chris Woods', '1-800-555-1213')) 7 rows selected. POWERMULTISET_BY_CARDINALITY POWERMULTISET_BY_CARDINALITY POWERMULTISET_BY_CARDINALITY(x, l)table(powermultiset(x)) p where CARDINALITY(value(p)) = l x 1 POWERMULTISET_BY_CARDINALITY 32 SELECT * FROM TABLE(POWERMULTISET_BY_CARDINALITY( people_typ ( person_typ(12, 'Bob Jones', '1-800-555-1212'), person_typ(31, 'Sarah Chen', '1-800-555-2212'), person_typ(45, 'Chris Woods', '1-800-555-1213')),2)); Oracle Database 10g SQL : LOB Oracle Corporation NEW SQL CAPABILITIES IN ORACLE DATABASE 10G: REGULAR EXPRESSIONS, NATIVE NUMBER, LOB PERFORMANCE, AND MORE 23

COLUMN_VALUE(IDNO, NAME, PHONE) ------------------------------------------------------------ PEOPLE_TYP(PERSON_TYP(12, 'Bob Jones', '1-800-555-1212'), PERSON_TYP(31, 'Sarah Chen', '1-800-555-2212')) PEOPLE_TYP(PERSON_TYP(12, 'Bob Jones', '1-800-555-1212'), PERSON_TYP(45, 'Chris Woods', '1-800-555-1213')) PEOPLE_TYP(PERSON_TYP(31, 'Sarah Chen', '1-800-555-2212'), PERSON_TYP(45, 'Chris Woods', '1-800-555-1213')) SET SET DISTINCT SELECT SET(physics_majors) FROM students WHERE graduation = '01-JUN-03'; SET(PHYSICS_MAJORS)(IDNO, NAME, PHONE) ------------------------------------------------------------- PEOPLE_TYP(PERSON_TYP(12, 'Bob Jones', '111-555-1212'), PERSON_TYP(45, 'Chris Woods', '111-555-1213')) Oracle SQL Oracle Database 10g Oracle SQL LOB Oracle Database 10g Grid SQL Java XML Oracle Database SQL PL/SQL E-Business LOB Oracle Database 10g SQL : LOB Oracle Corporation NEW SQL CAPABILITIES IN ORACLE DATABASE 10G: REGULAR EXPRESSIONS, NATIVE NUMBER, LOB PERFORMANCE, AND MORE 24

Oracle Java XML API API JavaXMLC/C++ Oracle Oracle Database 10g Web OLAP Oracle SQL SQL SQL Oracle Database 10g SQL Oracle Database 10g SQL : LOB Oracle Corporation NEW SQL CAPABILITIES IN ORACLE DATABASE 10G: REGULAR EXPRESSIONS, NATIVE NUMBER, LOB PERFORMANCE, AND MORE 25