OPTION
キーワードは、コマンドと一緒に渡すことができるオプションを表します。これらのオプションは CData Virtuality Server 固有のもので、どのSQL 仕様でもカバーされていません。
Usage
OPTION
option
(
option
)*
Supported Options
MAKEDEP
このOPTIONSは、JOINでDependentにするソース・テーブルを指定します。
Usage
MAKEDEP
table
[(,
table
)*]
MAKENOTDEP
この OPTIONS は Dependent Join が使用されないようにします。
Usage
MAKENOTDEP
table
[(,
table
)*]
NOCACHE
このオプションは、すべてのテーブルまたは指定されたテーブルでキャッシュが使用されないようにします。OPTION
句で指定されるテーブルはすべて完全修飾されていなければならないことに注意してください。
Usage
NOCACHE [
table
(,
table
)*]
$NOOPT
このオプションがTRUE
に設定されている場合(または修飾子が省略されている場合)、クエリに対して推奨される最適化は作成されません。すでに作成された Optimizations はそのまま使用されます。デフォルト: FALSE
.
Usage
$NOOPT [
FALSE
|
TRUE
]
$NOFAIL
このオプションは、コマンドが失敗した場合にエラーを投げるのを防ぎます。このエラーは無視されます。
以下の手順に適用する場合にのみ処理されます:
createCopyOverSQLJob()
createCopyOverSourceTableJob()
createGatherStatisticsJob()
createOptimizationJob()
createincrementaloptimizationjob()
createSQLJob()
setCurrentDwh()
setRemark()
CREATE OR REPLACE VIEW
CREATE OR REPLACE PROCEDURE
CData Virtuality E xporter は、エクスポートされた呼び出しに" OPTION $NOFAIL
" を追加します:
setRemark()
Usage
$NOFAIL [
FALSE
|
TRUE
]
必要な値がTRUE
の場合、以下の例のように明示的に指定する必要はありません。
Example
CALL
"SYSADMIN.setRemark"
(
"name"
=>
'views.doesnotexist'
,
"remark"
=>
'this is a new comment'
)
OPTION
$NOFAIL;;
$PREFER_DWH
このオプションは以下のいずれかの値を取ります:
FORCE
( default ): Analytical Storage Optimization はどのような場合でも 適用されます。 Optimizations が有効になっているが、それに使用できるマテリアライズドテーブルがない場合(例えば、分析ストレージに マテリアライズドテーブルが見つからない場合)、例外がスローされます;ALWAYS
最適化が有効で、対応するマテリアライズド・テーブルが分析ストレージで利用可能な場合、そのようなマテリアライゼーションが使用されます。マテリアライズド・テーブルが利用できない場合、クエリは自動的にソースにリダイレクトされます;CONDITIONAL
tableA
tableB
同じデータソース に向けられた結合 クエリは、 オリジナルデータソースシステムによって計算されます;NEVER
: Optimization は、 いかなる場合でも適用されません。
JoinがすでにMaterializationされている場合は、オプション値に関係なく、Analytical Storageから提供されることに注意してください。
Usage
$PREFER_DWH [
FORCE
| ALWAYS | CONDITIONAL | NEVER]
Example
同じスキーマ(データソース)内での結合の例:
SELECT
<sth.>
FROM
schemaA.tableA <some_join> schemaA.tableB
ON
<some_condition>
OPTION
$PREFER_DWH NEVER
$ALLOW_CARTESIAN
このオプションは以下のいずれかの値を取ります:
NEVER
:カルテジアン積は決して行いませんIMPLICIT
(デフォルト):クエリプロセッサによって暗黙的に生成された場合のみ、デカルトを許可します。クエリは明示的な結合を含むことはできませんが、複雑なクエリの場合、ACCESS
ノードのペアが共通のSELECT
基準を持たない場合、クエリ・プロセッサはクロス結合を生成することがあります。ALWAYS
:常にカルテシアン
Usage
$ALLOW_CARTESIAN (NEVER | IMPLICIT | ALWAYS)
Examples
1. 明示的なクロスジョインを使用したクエリの例($ALLOW_CARTESIAN
オプションがALWAYS
に設定されている場合に動作します):
SELECT
*
FROM
SchemaA.TableA, SchemaB.TableB
SELECT
*
FROM
SchemaA.TableA
CROSS
JOIN
SchemaB.TableB
2. 暗黙のクロスジョインになるクエリの例:
SELECT
*
FROM
(CALL file.getFiles(
'1.csv'
)) f, TEXTTABLE(TO_CHARS(f.file,
'ISO-8859-15'
) COLUMNS ...)
3. 暗黙のクロスジョインになるクエリの例:
SELECT
CAST
((
SUM
((
CASE
WHEN
((
"order_position"
.
"state"
= 512)
OR
(
"order_position"
.
"state"
= 1024))
THEN
1
ELSE
0
END
)) -
SUM
((
CASE
WHEN
(
"order_position"
.
"state"
= 512)
THEN
1
ELSE
0
END
)))
AS
FLOAT
)
AS
"usr_Retourenquote_St_ck_Kopie_qk"
FROM
"test_dvcore301_1"
.
"public.order_position"
"order_position"
INNER
JOIN
"test_dvcore301_2"
.
"public.customer_order"
"customer_order"
ON
(
"order_position"
.
"order_id"
=
"customer_order"
.
"id"
)
INNER
JOIN
"test_dvcore301_1"
.
"public.address"
"address"
ON
(
"customer_order"
.
"shipping_address_id"
=
"address"
.
"id"
)
INNER
JOIN
"test_dvcore301_2"
.
"public.supplier_article"
"supplier_article"
ON
(
"order_position"
.
"supplier_article_id"
=
"supplier_article"
.
"id"
)
INNER
JOIN
"test_dvcore301_2"
.
"public.article"
"article"
ON
(
"order_position"
.
"article_id"
=
"article"
.
"id"
)
INNER
JOIN
"test_dvcore301_2"
.
"public.article_details"
"article_details"
ON
(
"order_position"
.
"supplier_article_id"
=
"article_details"
.
"id"
)
INNER
JOIN
"test_dvcore301_2"
.
"public.principal"
"principal"
ON
(
"customer_order"
.
"customer_id"
=
"principal"
.
"id"
)
INNER
JOIN
"test_dvcore301_2"
.
"public.principal"
"stylist"
ON
(
"customer_order"
.
"stylelist_id"
=
"stylist"
.
"id"
)
WHERE
(((
"article_details"
.
"category"
IS
NULL
)
OR
((
"article_details"
.
"category"
>=
''
)
AND
(
"article_details"
.
"category"
<=
'Some Category'
)))
AND
((
"article_details"
.
"season"
IS
NULL
)
OR
((
"article_details"
.
"season"
>=
'Season'
)
AND
(
"article_details"
.
"season"
<=
'Season2'
)))
AND
((
"customer_order"
.
"date_shipped"
>= {ts
'2012-02-02 18:00:00'
})
AND
(
"customer_order"
.
"date_shipped"
<= {ts
'2013-02-14 17:27:08.222000'
})))
HAVING
(
COUNT
(1) > 0)
OPTION
$NOOPT
$ALLOW_XML_TEXT_NODE_WHITESPACE
これはXMLQuery、XMLTableストリーミングモード固有のオプションで、空白のみを含む要素を扱うことができます。このオプションが有効でない場合、空白のみを含む要素は空として扱われます。
Usage
$ALLOW_XML_TEXT_NODE_WHITESPACE [
FALSE
|
TRUE
]
Example
オプションを有効にしたXMLTABLE
クエリの例:
SELECT
xt.
NAME
,
xt.SURNAME,
LENGTH(xt.SURNAME)
AS
SURNAME_LENGTH
FROM
XMLTABLE(
'/root/band_members/band_member'
PASSING XMLPARSE(
DOCUMENT
'<root>
<band_members>
<band_member>
<name>George</name>
<surname> </surname>
</band_member>
<band_member>
<name>Ringo</name>
<surname></surname>
</band_member>
</band_members>
</root>'
)
COLUMNS
NAME
STRING PATH
'name'
,
SURNAME STRING PATH
'surname'
) xt
OPTION
$ALLOW_XML_TEXT_NODE_WHITESPACE;;
-- returns:
/*
NAME
SURNAME SURNAME_LENGTH
George 1
Ringo 0
*/
Previous versions of the CData Virtuality Server accepted the PLANONLY
, DEBUG
, and SHOWPLAN
option arguments. These are no longer accepted in the OPTION
clause.
In addition to providing an option for an SQL statement, it is possible to set it globally. Please see the Controlling Data Virtuality Server Behaviour chapter for more details.