式とは、1 つ以上の値と 1 つ以上の演算の組み合わせです。値には、限定された値を持つ定数、値に評価される関数、または値を含む属性を使用できます。式はそれぞれのデータ型に割り当てられます。
次の単純な式は 4 に評価され、データ型は NUMBER
(構成要素と同一のデータ型) です。
2*2
次の式は、関数と演算子を使用するより複雑な式の例です。この式は現在の日付に 7 日を加算し、合計から時間の要素を削除し、結果を CHAR
データ型に変換します。
TO_CHAR(TRUNC(SYSDATE+7))
Oracle CEP では、以下の式が提供されます。
集約 (Distinct) 式 : 「aggr_distinct_expr」
集約式 : 「aggr_expr」
算術式 : 「arith_expr」
算術式リスト : 「arith_expr_list」
Case 式 : 「case_expr」
Decode 式 : 「decode」
関数式 : 「func_expr」
順序式 : 「order_expr」
XML 集約式 : 「xml_agg_expr」
XML 列属性値式 : 「xmlcolattval_expr」
XML 要素式 : 「xmlelement_expr」
XML フォレスト式 : 「xmlforest_expr」
XML 解析式 : 「xml_parse_expr」
以下の場所で式を使用できます。
SELECT
文の select リスト
WHERE
句および HAVING
句の条件
INSERT
文の VALUES
句
Oracle CEP では Oracle CQL 文の一部で式の形式の一部が使用できない場合があります。Oracle CQL 文の式の制限の詳細については、第 16 章「Oracle CQL 文」で個々の Oracle CQL 文を参照してください。
このリファレンスの他の部分で説明している条件、Oracle CQL 関数、Oracle CQL 文で expr
と示されている箇所では、適切な式表記を使用する必要があります。それに続く節では、さまざまな式の例を挙げて説明しています。
注意 : ストリーム入力の例で、h で始まる行 (h 3800 など) はハートビート入力タプルです。これは、ハートビート値よりも小さいタイムスタンプを持つこれ以上の入力がないことを Oracle CEP に通知します。 |
distinct
を使用して集約の組み込み関数を使用する場合は、aggr_distinct_expr
集約式を使用します。distinct
を使用せずに集約の組み込み関数を使用する場合は、「aggr_expr」を参照してください。
arith_distinct_expr
は集約式の引数として指定できます。
aggr_distinct_expr
は以下の Oracle CQL 文で使用できます。
詳細については、第 6 章「関数 : 集約」を参照してください。
例
例 11-2 は COUNT
集約 (Distinct) 式の使用方法を示します。
例 11-1 COUNT の aggr_distinct_expr
create view viewq2Cond1(ACCT_INTRL_ID, sumForeign, countForeign) as select ACCT_INTRL_ID, sum(TRXN_BASE_AM), count(distinct ADDR_CNTRY_CD) from ValidCashForeignTxn[range 48 hours] group by ACCT_INTRL_ID having ((sum(TRXN_BASE_AM) * 100) >= (1000 * 60) and (count(distinct ADDR_CNTRY_CD >= 2)))
集約の組み込み関数を使用する場合は、aggr_expr
集約式を使用します。distinct
を使用して集約の組み込み関数を使用する場合は、「aggr_distinct_expr」を参照してください。
(arith_expr::=、identifier::=、xml_agg_expr::=)
arith_expr
は集約式の引数として指定できます。
first
および last
集約組み込み関数は、以下のピリオド区切りの値から成る単一の引数を使用します。
identifier1
: DEFINE
句で指定されたパターンの名前。
identifier2
: CREATE STREAM
文で指定されたストリーム要素の名前。
aggr_expr
は以下の Oracle CQL 文で使用できます。
詳細については、以下を参照してください。
例
例 11-2 は COUNT
集約式の使用方法を示します。
ストリーム要素の属性値、定数値、関数式の結果、集約組み込み関数、case 式、または decode の任意の組み合わせを使用して算術式を定義するには、arith_expr
算術式を使用します。すべての一般的な算術演算子 (+
、-
、*
、/
) および連結演算子 (||
) を使用できます。
(attr::=、const_value::=、func_expr::=、aggr_expr::=、aggr_distinct_expr::=、case_expr::=、decode::=、arith_expr::=)
arith_expr
は以下の Oracle CQL 文で使用できます。
詳細については、「算術演算子」を参照してください。
例
例 11-2 は arith_expr
式の使用方法を示します。
ストリーム要素の属性値、定数値、関数式の結果、集約組み込み関数、case 式、または decode の任意の組み合わせを使用して 1 つ以上の算術式を定義するには、arith_expr_list
算術式リストを使用します。すべての一般的な算術演算子 (+
、-
、*
、/
) および連結演算子 (||
) を使用できます。
arith_expr_list
は以下の Oracle CQL 文で使用できます。
詳細については、「算術演算子」を参照してください。
例
例 11-4 は arith_expr_list
式の使用方法を示します。
複数の条件でストリーム要素を評価するには、case 式 case_expr
を使用します。
(searched_case_list::=、arith_expr::=、simple_case_list::=)
(non_mt_cond_list::=、arith_expr::=)
case_expr
は算術式の DECODE
句と同様です (「decode」を参照)。
searched_case
句では、non_mt_cond_list
が true に評価される場合、searched_case
句によって算術式または null のいずれかが返されます。
simple_case
句では、算術式が true である場合、simple_case
句によって別の算術式または null のいずれかが返されます。
case_expr
は以下の Oracle CQL 文で使用できます。
例
ここでは、case_expr
の以下の例について説明します。
case_expr with SELECT *
例 11-5 のクエリ q97
と例 11-6 のデータ ストリーム S0
があるとします。ストリーム S1
のスキーマは (c1 float, c2 integer)
です。例 11-7 は、クエリで返されるリレーションを示します。
例 11-5 CASE 式 : SELECT * のクエリ
<query id="q97"><![CDATA[ select * from S0 where case when c2 < 25 then c2+5 when c2 > 25 then c2+10 end > 25 ]]></query>
例 11-6 CASE 式 : SELECT * のストリーム入力
Timestamp Tuple 1000 0.1,10 1002 0.14,15 200000 0.2,20 400000 0.3,30 500000 0.3,35 600000 ,35 h 800000 100000000 4.04,40 h 200000000
例 11-7 CASE 式 : SELECT * のリレーション出力
Timestamp Tuple Kind Tuple 400000:+ 0.3,30 500000:+ 0.3,35 600000:+ ,35 100000000:+ 4.04,40
case_expr with SELECT
例 11-8 のクエリ q96
と例 11-9 の S0
および例 11-10 の S1
の各データ ストリームがあるとします。ストリーム S0
のスキーマは (c1 float, c2 integer)
です。ストリーム S1
のスキーマは (c1 float, c2 integer)
です。例 11-11 は、クエリで返されるリレーションを示します。
例 11-8 CASE 式 : SELECT クエリ
<query id="q96"><![CDATA[ select case to_float(S0.c2+10) when (S1.c2*100)+10 then S0.c1+0.5 when (S1.c2*100)+11 then S0.c1 else S0.c1+0.3 end from S0[rows 100], S1[rows 100] ]]></query>
例 11-9 CASE 式 : SELECT のストリーム S0 入力
Timestamp Tuple 1000 0.1,10 1002 0.14,15 200000 0.2,20 400000 0.3,30 500000 0.3,35 600000 ,35 h 800000 100000000 4.04,40 h 200000000
例 11-10 CASE 式 : SELECT のストリーム S1 入力
Timestamp Tuple 1000 10,0.1 1002 15,0.14 200000 20,0.2 300000 ,0.2 400000 30,0.3 100000000 40,4.04
例 11-11 CASE 式 : SELECT のリレーション出力
Timestamp Tuple Kind Tuple 1000: + 0.6 1002: + 0.44 1002: + 0.4 1002: + 0.14 200000: + 0.5 200000: + 0.5 200000: + 0.4 200000: + 0.44 200000: + 0.7 300000: + 0.4 300000: + 0.44 300000: + 0.7 400000: + 0.6 400000: + 0.6 400000: + 0.6 400000: + 0.6 400000: + 0.4 400000: + 0.44 400000: + 0.5 400000: + 0.8 500000: + 0.6 500000: + 0.6 500000: + 0.6 500000: + 0.6 500000: + 0.6 600000: + 600000: + 600000: + 600000: + 600000: + 100000000: + 4.34 100000000: + 4.34 100000000: + 4.34 100000000: + 4.34 100000000: + 4.34 100000000: + 0.4 100000000: + 0.44 100000000: + 0.5 100000000: + 0.6 100000000: + 0.6 100000000: + 100000000: + 4.34
複数の条件でストリーム要素を評価するには、decode
式を使用します。
DECODE
では、以下の形式を持つ non_mt_arg_list が予期されます。
expr, search1, result1, search2, result2, ... , searchN, result N, default
DECODE
は、expr
を各 search
値と 1 つずつ比較します。expr
が search
値と一致した場合、DECODE
式は対応する result
値を返します。一致する値がない場合、DECODE
式は default
を返します。default
が省略されている場合、DECODE
式は null を返します。
引数には任意の数値データ型 (INTEGER
、BIGINT
、FLOAT
、DOUBLE
) または文字データ型 (CHAR
) を使用できます。詳細については、節 2.2「データ型」を参照してください。
search
、result
、および default
の各値は式から派生できます。Oracle CEP では短絡評価が使用されます。すべての search
値を評価してからそれらを expr
と比較する代わりに、各 search
値は expr
との比較が行われる前にのみ評価されます。このため、Oracle CEP では、前回の検索 j (0 < j < i)
が expr
と一致した場合に検索 i
は評価されません。
Oracle CEP では、比較を行う前に expr
と各 search
値が最初の search
値のデータ型に自動的に変換されます。戻り値は最初の result
と同じデータ型に自動的に変換されます。
DECODE
式では、Oracle CEP によって 2 つの null が同等と見なされます。expr
が null のとき、Oracle CEP では最初の search
が同様に null である場合にその result
が返されます。
expr
、searches
、results
、および default
を含む DECODE
式の要素の最大数は 255 です。
decode
式は case_expr
と同様です (case_expr::= を参照)。
decode
式は以下の Oracle CQL 文で使用できます。
例
例 11-12 のクエリ q
と例 11-13 の入力リレーション R
があるとします。リレーション R
のスキーマは (c1 float, c2 integer)
です。例 11-14 は、クエリで返されるリレーションを示します。
例 11-12 算術式と DECODE のクエリ
<query id="q"><![CDATA[ ... SELECT DECODE (c2, 10, c1+0.5, 20, c1+0.1, 30, c1+0.2, c1+0.3) from R ]]></query>
任意の Oracle CQL 組み込み関数またはユーザ定義関数を使用して関数呼び出しを定義するには、func_expr
関数式を使用します。
(identifier::=、const_int::=、const_bigint::=、const_string::=、xqryargs_list::=、non_mt_arg_list::=、xml_parse_expr::=、xmlelement_expr::=、xmlforest_expr::=、xmlcolattval_expr::=、arith_expr::=)
PREV
PREV
関数は、以下のピリオド区切りの identifier 引数から成る単一の引数を使用します。
identifier1
: DEFINE
句で指定されたパターンの名前。
identifier2
: CREATE STREAM
文で指定されたストリーム要素の名前。
また、PREV
関数は以下の const_int 引数を使用します。
const_int
: 現在のストリーム要素の前にある比較対象のストリーム要素のインデックス。デフォルト : 1。
const_bigint
: 現在のストリーム要素の前にある比較対象のストリーム要素のタイムスタンプ。ストリーム要素のタイムスタンプを取得するには、ELEMENT_TIME
擬似列を使用できます (節 3.2「ELEMENT_TIME 擬似列」を参照)。
詳細については、「PREV」を参照してください。例については、「func_expr PREV 関数の例」を参照してください。
XQuery: XMLEXISTS と XMLQUERY
Oracle CEP によって XML ストリーム要素データに適用される、xqryargs_list にバインドされた XQuery を指定できます。詳細については、以下を参照してください。
xqryargs_list は、select リストからの 1 つ以上のストリーム要素、AS
キーワード、XQuery 変数または演算子 (現在のノード演算子 "." など) を表す const_string を使用する算術式から成る 1 つ以上の xqryarg インスタンスのカンマ区切りのリストです。詳細については、xqryargs_list::= を参照してください。
例については、「func_expr XMLQUERY 関数の例」を参照してください。
XMLCONCAT
XMLCONCAT
関数は、カンマ区切りの xmltype
引数の連結を xmltype
として返します。
詳細については、「XMLCONCAT」を参照してください。
SQL/XML (SQLX)
SQLX 仕様は XML データをサポートするように SQL を拡張します。Oracle CQL では SQLX ストリームからのデータを操作する以下の式 (および関数) を提供します。たとえば、SQLX ストリーム要素を使用した XML 要素または属性の作成、より大きい XML フラグメントへの結合、XML コンテンツまたはドキュメントの入力の解析などができます。
Oracle CQL での SQLX のサポートの詳細については、以下を参照してください。
Oracle CQL で XML を使用する場合のデータ型の制限については、以下を参照してください。
SQLX の詳細については、『Oracle Database SQL Language Reference』を参照してください。
FIRST と LAST
FIRST
関数と LAST
関数は、以下のピリオド区切りの個別の値から成る単一の引数をそれぞれ使用します。
identifier1
: DEFINE
句で指定されたパターンの名前。
identifier2
: CREATE STREAM
文で指定されたストリーム要素の名前。
詳細については、以下を参照してください。
non_mt_arg_list
を明示的に使用して、または使用せずに、関数の識別子を指定できます。これは、組み込み関数またはユーザ定義関数の呼び出しに適した引数のリストです。リストには単一または複数の引数を使用できます。
IDENTIFIER
個別の算術式を明示的に使用して、関数の識別子を指定できます。詳細については、aggr_distinct_expr を参照してください。
func_expr
は以下の Oracle CQL 文で使用できます。
詳細については、節 1.1.9「関数」を参照してください。
例
ここでは、func_expr
の以下の例について説明します。
func_expr PREV 関数の例
例 11-15 は PREV
関数を呼び出す func_expr の作成方法を示します。
例 11-15 PREV の func_expr
<query id="q36"><![CDATA[ select T.Ac1 from S15 MATCH_RECOGNIZE ( PARTITION BY c2 MEASURES A.c1 as Ac1 PATTERN(A) DEFINE A as (A.c1 = PREV(A.c1,3,5000) ) ) as T ]]></query>
func_expr XMLQUERY 関数の例
例 11-16 は XMLQUERY
関数を呼び出す func_expr の作成方法を示します。
例 11-16 XMLQUERY の func_expr
<query id="q1"><![CDATA[ select xmlexists( "for $i in /PDRecord where $i/PDId <= $x return $i/PDName" passing by value c2 as ".", (c1+1) as "x" returning content ) xmldata from S1 ]]></query>
例 11-17 は SUM
関数を呼び出す func_expr の作成方法を示します。
Oracle CEP がクエリで選択されたタプルを返すソート順を指定するには、order_expr
式を使用します。
ストリーム要素は attr
名で指定できます。
または、const_int
インデックスでもストリーム要素を指定できます。インデックスはストリームの登録または作成時に指定したストリーム要素の位置に対応します。
order_expr
は以下の Oracle CQL 文で使用できます。
例
例 11-18 を示します。ストリーム S3
のスキーマは (c1 bigint, c2 interval, c3 byte(10), c4 float)
です。この例は、クエリ q210
の結果を c1
、c2
の順でソートする方法と、クエリ q211
の結果を c2
、インデックス 3 のストリーム要素 (c3
)、インデックス 4 のストリーム要素 (c4
) の順でソートする方法を示します。
XML フラグメントのコレクションを集約された XML ドキュメントとして返すには、xml_agg_expr
式を使用します。null を返す引数は結果から削除されます。
(arith_expr、order_by_clause::=)
xml_agg_expr
は集約式の引数として指定できます。
xml_agg_expr
は以下の Oracle CQL 文で使用できます。
詳細については、以下を参照してください。
例
例 11-19 のクエリ tkdata67_q1
と例 11-20 の入力リレーション tkdata67_S0
があるとします。リレーション tkdata67_S0
のスキーマは (c1 integer, c2 float)
です。例 11-21 は、クエリで返されるリレーションを示します。
例 11-19 xml_agg_expr のクエリ
<query id="tkdata67_q1"><![CDATA[ select c1, xmlagg(xmlelement("c2",c2)) from tkdata67_S0[rows 10] group by c1 ]]></query>
XML フラグメントを作成し、各 XML フラグメントに名前列と属性名が含まれるように結果の XML を拡張するには、xmlcolattval_expr
式を使用します。
xmlcolattval_expr
は関数式の引数として指定できます。特に、SQLX ストリームの処理に役立ちます。詳細については、「SQL/XML (SQLX)」を参照してください。
xmlcolattval_expr
は以下の Oracle CQL 文で使用できます。
詳細については、『Oracle Database SQL Language Reference』の「XMLCOLATTVAL」を参照してください。
例
例 11-19 のクエリ tkdata53_q1
と例 11-20 の入力リレーション tkdata53_S0
があるとします。リレーション tkdata53_S0
のスキーマは (c1 integer, c2 float)
です。例 11-21 は、クエリで返されるリレーションを示します。
例 11-22 xmlcolattval_expr のクエリ
<query id="tkdata53_q1"><![CDATA[ select XMLELEMENT("tkdata53_S0", XMLCOLATTVAL( tkdata53_S0.c1, tkdata53_S0.c2)) from tkdata53_S0 [range 1] ]]></query>
例 11-23 xmlcolattval_expr のリレーション入力
Timestamp Tuple 1000: 10, 0.1 1002: 15, 0.14 200000: 20, 0.2 400000: 30, 0.3 h 800000 100000000: 40, 4.04 h 200000000
例 11-24 xmlcolattval_expr のリレーション出力
Timestamp Tuple Kind Tuple 1000: + <tkdata53_S0> <column name="c1">10</column> <column name="c2">0.1</column> </tkdata53_S0> 1002: + <tkdata53_S0> <column name="c1">15</column> <column name="c2">0.14</column> </tkdata53_S0> 2000: - <tkdata53_S0> <column name="c1">10</column> <column name="c2">0.1</column> </tkdata53_S0> 2002: - <tkdata53_S0> <column name="c1">15</column> <column name="c2">0.14</column> </tkdata53_S0> 200000: + <tkdata53_S0> <column name="c1">20</column> <column name="c2">0.2</column> </tkdata53_S0> 201000: - <tkdata53_S0> <column name="c1">20</column> <column name="c2">0.2</column> </tkdata53_S0> 400000: + <tkdata53_S0> <column name="c1">30</column> <column name="c2">0.3</column> </tkdata53_S0> 401000: - <tkdata53_S0> <column name="c1">30</column> <column name="c2">0.3</column> </tkdata53_S0> 100000000: + <tkdata53_S0> <column name="c1">40</column> <column name="c2">4.04</column> </tkdata53_S0> 100001000: - <tkdata53_S0> <column name="c1">40</column> <column name="c2">4.04</column> </tkdata53_S0>
ストリーム要素から整形式の XML 要素を作成する必要がある場合は、xmlelement_expr
式を使用します。
(const_string::=、arith_expr::=、xml_attribute_list::=、arith_expr_list::=)
xmlelement_expr
は関数式の引数として指定できます。特に、SQLX ストリームの処理に役立ちます。詳細については、「SQL/XML (SQLX)」を参照してください。
xmlelement_expr
は以下の Oracle CQL 文で使用できます。
詳細については、『Oracle Database SQL Language Reference』の「XMLELEMENT」を参照してください。
例
例 11-25 のクエリ tkdata51_q0
と例 11-26 の入力リレーション tkdata51_S0
があるとします。リレーション tkdata51_S0
のスキーマは (c1 integer, c2 float)
です。例 11-27 は、クエリで返されるリレーションを示します。
例 11-25 xmlelement_expr のクエリ
<query id="tkdata51_q0"><![CDATA[ select XMLELEMENT( NAME "S0", XMLELEMENT(NAME "c1", tkdata51_S0.c1), XMLELEMENT(NAME "c2", tkdata51_S0.c2) ) from tkdata51_S0 [range 1] ]]></query>
例 11-26 xmlelement_expr のリレーション入力
Timestamp Tuple 1000: 10, 0.1 1002: 15, 0.14 200000: 20, 0.2 400000: 30, 0.3 h 800000 100000000: 40, 4.04 h 200000000
例 11-27 xmlelement_expr のリレーション出力
Timestamp Tuple Kind Tuple 1000: + <S0> <c1>10</c1> <c2>0.1</c2> </S0> 1002: + <S0> <c1>15</c1> <c2>0.14</c2> </S0> 2000: - <S0> <c1>10</c1> <c2>0.1</c2> </S0> 2002: - <S0> <c1>15</c1> <c2>0.14</c2> </S0> 200000: + <S0> <c1>20</c1> <c2>0.2</c2> </S0> 201000: - <S0> <c1>20</c1> <c2>0.2</c2> </S0> 400000: + <S0> <c1>30</c1> <c2>0.3</c2> </S0> 401000: - <S0> <c1>30</c1> <c2>0.3</c2> </S0> 100000000: + <S0> <c1>40</c1> <c2>4.04</c2> </S0> 100001000: - <S0> <c1>40</c1> <c2>4.04</c2> </S0>
各引数パラメータを XML に変換し、これらの変換された引数を連結した XML フラグメントを返すには、xmlforest_expr
を使用します。
xmlforest_expr
は関数式の引数として指定できます。特に、SQLX ストリームの処理に役立ちます。詳細については、「SQL/XML (SQLX)」を参照してください。
xmlforest_expr
は以下の Oracle CQL 文で使用できます。
詳細については、『Oracle Database SQL Language Reference』の「XMLFOREST」を参照してください。
例
例 11-28 のクエリ tkdata52_q0
と例 11-29 の入力リレーション tkdata52_S0
があるとします。リレーション tkdata52_S0
のスキーマは (c1 integer, c2 float)
です。例 11-30 は、クエリで返されるリレーションを示します。
例 11-28 xmlforest_expr のクエリ
<query id="tkdata52_q0"><![CDATA[ select XMLFOREST( tkdata52_S0.c1, tkdata52_S0.c2) from tkdata52_S0 [range 1] ]]></query>
例 11-29 xmlforest_expr のリレーション入力
Timestamp Tuple 1000: 10, 0.1 1002: 15, 0.14 200000: 20, 0.2 400000: 30, 0.3 h 800000 100000000: 40, 4.04 h 200000000
例 11-30 xmlforest_expr のリレーション出力
Timestamp Tuple Kind Tuple 1000: + <c1>10</c1> <c2>0.1</c2> 1002: + <c1>15</c1> <c2>0.14</c2> 2000: - <c1>10</c1> <c2>0.1</c2> 2002: - <c1>15</c1> <c2>0.14</c2> 200000: + <c1>20</c1> <c2>0.2</c2> 201000: - <c1>20</c1> <c2>0.2</c2> 400000: + <c1>30</c1> <c2>0.3</c2> 401000: - <c1>30</c1> <c2>0.3</c2> 100000000: + <c1>40</c1> <c2>4.04</c2> 100001000: - <c1>40</c1> <c2>4.04</c2>
arith_expr
の評価された結果から XML インスタンスを解析および生成するには、xml_parse_expr
式を使用します。
xml_parse_expr
式の使用では、以下のことに注意します。
arith_expr
が null に解決される場合は、式で null が返されます。
content
を指定した場合は、arith_expr
が有効な XML 値に解決される必要があります。例については、「xml_parse_expr ドキュメントの例」を参照してください。
document
を指定した場合は、arith_expr
が単一ルートの XML ドキュメントに解決される必要があります。例については、「xml_parse_expr コンテンツの例」を参照してください。
wellformed
を指定した場合は、value_expr
が整形式の XML ドキュメントに解決されることを保証することになるため、正しい形式の入力を確認する有効性チェックがデータベースで実行されません。例については、「xml_parse_expr 整形式の例」を参照してください。
xml_parse_expr
は関数式の引数として指定できます。特に、SQLX ストリームの処理に役立ちます。詳細については、「SQL/XML (SQLX)」を参照してください。
xml_parse_expr
は以下の Oracle CQL 文で使用できます。
詳細については、『Oracle Database SQL Language Reference』の「XMLPARSE」を参照してください。
例
ここでは、xml_parse_expr
の以下の例について説明します。
xml_parse_expr コンテンツの例
例 11-31 のクエリ tkdata62_q3
と例 11-32 の入力リレーション tkdata62_S1
があるとします。リレーション tkdata62_S1
のスキーマは (c1 char(30))
です。例 11-33 はクエリで返されるリレーションを示します。
例 11-31 xml_parse_expr コンテンツ : クエリ
<query id="tkdata62_q3"><![CDATA[ select XMLPARSE(CONTENT c1) from tkdata62_S1 ]]></query>
例 11-32 xml_parse_expr コンテンツ : リレーション入力
Timestamp Tuple 1000 "<a>3</a>" 1000 "<e3>blaaaaa</e3>" 1000 "<r>4</r>" 1000 "<a></a> 1003 "<a>s3</a>" 1004 "<d>b6</d>"
例 11-33 xml_parse_expr コンテンツ : リレーション出力
Timestamp Tuple Kind Tuple 1000: + <a>3</a> 1000: + <e3>blaaaaa</e3> 1000: + <r>4</r> 1000: + <a/> 1003: + <a>s3</a> 1004: + <d>b6</d>
xml_parse_expr ドキュメントの例
例 11-34 のクエリ tkdata62_q4
と例 11-35 の入力リレーション tkdata62_S1
があるとします。リレーション tkdata62_S1
のスキーマは (c1 char(30))
です。例 11-36 は、クエリで返されるリレーションを示します。
例 11-34 xml_parse_expr ドキュメント : クエリ
<query id="tkdata62_q4"><![CDATA[ select XMLPARSE(DOCUMENT c1) from tkdata62_S1 ]]></query>
例 11-35 xml_parse_expr ドキュメント : リレーション入力
Timestamp Tuple 1000 "<a>3</a>" 1000 "<e3>blaaaaa</e3>" 1000 "<r>4</r>" 1000 "<a></a> 1003 "<a>s3</a>" 1004 "<d>b6</d>"
例 11-36 xml_parse_expr ドキュメント : リレーション出力
Timestamp Tuple Kind Tuple 1000: + <a>3</a> 1000: + <e3>blaaaaa</e3> 1000: + <r>4</r> 1000: + <a/> 1003: + <a>s3</a> 1004: + <d>b6</d>
xml_parse_expr 整形式の例
例 11-37 のクエリ tkdata62_q2
と例 11-38 の入力リレーション tkdata62_S
があるとします。リレーション tkdata62_S
のスキーマは (c char(30))
です。例 11-39 は、クエリで返されるリレーションを示します。
例 11-37 xml_parse_expr 整形式 : クエリ
<query id="tkdata62_q2"><![CDATA[ select XMLPARSE(DOCUMENT c WELLFORMED) from tkdata62_S ]]></query>