|
•
|
|
•
|
|
•
|
|
•
|
|
•
|
|
•
|
|
•
|
|
•
|
|
•
|
|
•
|
|
•
|
|
•
|
相対パスには、1 つのピリオド("." は現在のディレクトリ)、2 つのピリオド(".." は親ディレクトリ)、円記号("\")、またはこれら 3 つのあらゆる組み合わせを含めることができます。パスは、SQL テーブル名を表すファイル名を含んでいる必要があります(パス名は円記号 "\" またはディレクトリ名で終わってはいけません)。CREATE TABEL または ALTER TABLE を使用してファイルを作成する場合、ファイル名は、相対パス付きで指定されたファイル名も含めてすべて、名前付きデータベースの設定で定義されている最初のデータ パスとの相対にします。(IN DICTIONARY を使用する場合、ファイル名には最初のデータの場所への相対パスを付けません。)
|
|
•
|
ルート ベースの相対パスを使用できます。たとえば、最初のデータ パスを D:\mydata\demodata とした場合、Zen は次のステートメント内のパス名を D:\temp\test123.btr と解釈します。
|
|
•
|
相対パス内の円記号('\')文字は、好みに応じて、Linux スタイル('/')と通常使われる円記号('\')のどちらを指定してもかまいません。必要であれば、2 種類の記号を混在させて使用することもできます。ディレクトリ構造スキーマは知っているかもしれませんが、接続されているサーバーの種類を知っている(あるいは管理している)とは限らないので、これは便利な機能です。パスは入力したとおりに X$File に格納されます。Zen エンジンは、パスを利用してファイルを開く際、円記号文字を適切なプラットフォームのタイプに変換します。また、データ ファイルはサポートされるすべてのプラットフォーム間でバイナリ互換性を共有するため、ディレクトリ構造がプラットフォーム間で同一である(および、パスに基づくファイル名が相対パスで指定されている)限りは、データベース ファイルおよび DDF をこれらに変更を加えることなく、あるプラットフォームから別のプラットフォームへ移動することができます。これは、複数のプラットフォームにまたがって、標準化されたデータベース スキーマをより簡単に配置するのに役立ちます。
|
|
結果セットにリストされる列の位置は変わりますが、テーブル内の列の物理的順序は変わりません。たとえば、"SELECT * FROM テーブル名" のようなクエリで生成される結果セットにおける列の配置方法を変更できます。論理的移動は、"SELECT * FROM テーブル名" のような、列を列挙するクエリにのみ影響を及ぼします。
|
|
|
•
|
|
||||||
一致が見つからない場合は、<データ ファイルのうち最大のインデックス番号>+ 1 がインデックス番号に使用されます。
X$Index にあり、データ ファイルに一致するキーがないインデックスはファントム インデックスと呼ばれ、データベース エンジンでは使用されません。
|
IN DICTIONARYを参照してください。
|
|||||
|
成功した場合、指定したインデックス番号を持つインデックスはデータ ファイルと X$Index の両方に追加されます。
|
USING を参照してください。
|
|||||
|
成功した場合、指定したインデックス番号を持つインデックスは X$Index にのみ追加されます。データ ファイルには何も挿入されません。
指定したインデックス番号は、データ ファイルには存在するが X$Index には存在せず、列およびインデックスの属性が追加するインデックスと一致する場合、指定したインデックス番号のインデックスが X$Index に追加されます。それ以外はエラーが返されます。
|
IN DICTIONARYを参照してください。
|
|
切り上げ2
|
切り上げ2
|
|||
|
切り上げ2
|
||||
|
切り上げ2
|
切り上げ2
|
|||
|
切り上げ2
|
||||
|
切り上げ2
|
切り上げ2
|
|||
|
切り上げ2
|
切り上げ2
|
|||
|
切り上げ2
|
切り上げ2
|
|||
|
2043
|
1833
|
|||
|
N/A1
|
4203
|
3783
|
||
|
N/A1
|
N/A1
|
4203
|
3783
|
|
|
1 "N/A" は「適用外」を意味します。
2 「切り上げ」は、ページ サイズを、ファイル バージョンでサポートされる次のサイズへ切り上げることを意味します。たとえば、512 は 1024 に切り上げられ、2560 は 4096 に切り上げるということです。
3 9.5 以降の形式のファイルでは 119 以上のセグメントを指定できますが、インデックスの数は 119 に制限されます。
|
||||
|
•
|
SET CACHED_PROCEDURES - キャッシュするプロシージャ数。デフォルト値は 50 です。
|
|
•
|
SET PROCEDURES_CACHE - キャッシュに使用するメモリ量。デフォルト値は 5 MB です。
|
|
•
|
|
•
|
|
•
|
文字列または文字列を返す式を実行するための EXEC[UTE] ステートメントが含まれている場合。たとえば、次のような例です。EXEC ('SELECT Student_ID FROM ' + :myinputvar)
|
|
•
|
|
•
|
現在は、式が使用されているすべての場所でサブクエリを使用できるわけではありません。たとえば、set :arg = SELECT MIN(sal) FROM emp を使用する UPDATE ステートメントはサポートされません。ただし、このサブクエリを SELECT min(sal) INTO :arg FROM emp のように書き直すことができます。
|
|
•
|
CASCADE を指定した場合、Zen はカスケード削除規則を使用します。ユーザーが親テーブルの行を削除すると、データベース エンジンによって従属テーブルの対応する行が削除されます。
|
|
•
|
RESTRICT を指定した場合、Zen は削除制限規則を使用します。外部キー値が親テーブルの行を参照している場合、ユーザーはその行を削除できません。
|
|
•
|
テキストの長さは、使用しているメタデータのバージョンの制限を超えることはできません。エントリは入力したまま正確に Xf$Loc に格納されます(ただし、後続の空白は切り捨てられ、無視されます)。Xf$Loc(メタデータ バージョン 1 用)および Xf$Loc(メタデータ バージョン 2 用)を参照してください。
|
|
•
|
相対パスには、1 つのピリオド(現在のディレクトリ)、2 つのピリオド(親ディレクトリ)、円記号、またはこれら 3 つのあらゆる組み合わせを含めることができます。ただし、パスは SQL テーブル名を表すファイル名を含んでいる必要があります。つまり、パス名は円記号やディレクトリ名で終わってはいけないということです。ファイル名は、相対パス付きで指定されたファイル名も含めてすべて、名前付きデータベースの設定で定義されている最初のデータ パスとの相対になります。
|
|
•
|
ルート ベースの相対パスを使用できます。たとえば、最初のデータ パスを D:\mydata\demodata とした場合、Zen は次のステートメント内のパス名を D:\temp\test123.btr と解釈します。
|
|
•
|
相対パス内の円記号文字は、Unix スタイル(/)と Windows の円記号(\)のどちらでも使用できます。必要であれば、2 種類の記号を混在させて使用することもできます。ディレクトリ構造スキーマは知っているかもしれませんが、接続されているサーバーの種類を知っている(あるいは管理している)とは限らないので、これは便利な機能です。パスは入力したとおりに X$File に格納されます。Zen エンジンは、パスを利用してファイルを開く際、円記号文字を適切なプラットフォームのタイプに変換します。また、データ ファイルはサポートされるすべてのプラットフォーム間でバイナリ互換性を共有するため、ディレクトリ構造がプラットフォーム間で同一である(および、パスに基づくファイル名が相対パスで指定されている)限りは、データベース ファイルおよび DDF をこれらに変更を加えることなく、あるプラットフォームから別のプラットフォームへ移動することができます。これにより、標準化されたデータベース スキーマを使用したクロス プラットフォームの展開が可能になります。
|
|
•
|
CREATE INDEX ステートメントは、ポインター数に指定した値に達するまではリンク重複方法を使用します。
|
|
•
|
ポインター数に指定した値に達したら、CREATE INDEX ステートメントは繰り返し重複方法を使用します。
|
|
•
|
ポインター数に指定した値に達しているとき、リンク重複インデックスを削除すると、CREATE INDEX ステートメントは次のキーに対してリンク重複方法を使用します。
|
|
•
|
CREATE INDEX ステートメントは、リンク重複キー用のポインターが予約されていない場合には繰り返し重複キーを作成できません。
|
|
•
|
|
•
|
|
テーブル名の最初の文字は # である必要がある(下の以前のリリースとの互換性を参照してください。)
|
||||
|
テーブル名の最初の文字は ## である必要がある(下の以前のリリースとの互換性を参照してください。)
|
||||
|
メタデータ バージョン 1 の場合、テーブル名の最大長(長さには "#"、"##"、アンダースコア、および ID も含む)については、『Advanced Operations Guide』の識別子の制限を参照してください
|
はい3
|
はい4
|
はい3
|
はい4
|
|
メタデータ バージョン 2 の場合、テーブル名の最大長(長さには "#"、"##"、アンダースコア、および ID も含む)については、『Advanced Operations Guide』の識別子の制限を参照してください
|
はい3
|
はい4
|
はい3
|
はい4
|
|
N/A9
|
N/A9
|
|||
|
N/A9
|
N/A9
|
|||
|
N/A9
|
はい7
|
N/A9
|
はい9
|
|
|
はい8
|
||||
|
N/A9
|
N/A9
|
|||
|
N/A9
|
N/A9
|
|||
|
1 SP はストアド プロシージャを表します。
2 データベース エンジンは、ストアド プロシージャの名前とセッション固有の ID をユーザー定義名に自動的に付加することによって、テーブル名が確実に一意になるようにします。この機能はユーザーに透過的です。
3 テーブル名の長さの合計には、"#" または "##" に加え、アンダースコア+セッション ID も含められます。セッション ID はオペレーティング システムによって 8、9、または 10 バイトになります。『Advanced Operations Guide』の識別子の制限を参照してください。
4 テーブル名の長さの合計には、"#" または "##" に加え、アンダースコア+ストアド プロシージャの名前+アンダースコア+セッション ID も含められます。セッション ID はオペレーティング システムによって 8、9、または 10 バイトになります。『Advanced Operations Guide』の識別子の制限を参照してください。
5 制約は警告を返しますがテーブルは作成されます。
6 テーブルは、1 つの SELECT INTO ステートメントによって作成されデータが入れられます。
7 テーブル名は、ストアド プロシージャが最初に実行されるときから既に存在しています。
8 プロシージャの実行が終了する前にセッションの終了が発生した場合。
9 N/A は「適用外」を意味します。
|
||||
|
•
|
|
•
|
|
•
|
|
•
|
|
•
|
|
•
|
|
•
|
|
•
|
|
•
|
DELETE ステートメントにオプションの第 2 FROM 句を含める場合、FROM 句の前にあるテーブル参照にエイリアスを指定することはできません。たとえば、DELETE t1 a FROM t2 WHERE a.c1 = t2.c1 とすると、次のエラーが返されます。
|
|
•
|
第 2 FROM 句に削除テーブルへの参照を 2 つ以上含める場合、それらの参照のうちの 1 つにだけエイリアスを指定できます。たとえば、DELETE t1 FROM t1 a, t1 b WHERE a.c1 = b.c1 とすると、次のエラーが返されます。
|
|
•
|
|
•
|
ユーザー定義のプロシージャまたはシステム ストアド プロシージャを呼び出す場合。CALL ステートメントの代わりに EXECUTE ステートメントを使用できます。
|
|
•
|
|
テーブル1
|
ビュー1
|
||
|
1 列はテーブルに対してのみ指定できます。ビューの権限はビュー全体に対してのみ付与でき、単一の列に対して付与することはできません。
2 テーブル、ビュー、またはストアド プロシージャを削除するには、ユーザーは対象オブジェクトの ALTER 権限を持っている必要があります。信頼されるビューおよびストアド プロシージャを削除できるのは、Master ユーザーのみです。
3 EXECUTE はストアド プロシージャにのみ適用されます。ストアド プロシージャを実行できるのは、CALL ステートメントまたは EXECUTE ステートメントのいずれかです。プロシージャは、信頼されるものでも信頼されないものでもかまいません。信頼されるオブジェクトと信頼されないオブジェクトを参照してください。
|
|||
|
1 テーブル、ビュー、またはストアド プロシージャを削除するには、ユーザーは対象オブジェクトの ALTER 権限を持っている必要があります。信頼されるビューおよびストアド プロシージャを削除できるのは、Master ユーザーのみです。
|
|||
|
信頼されるビューまたは信頼されるストアド プロシージャ
|
Zen メタデータを参照してください。
|
|
|
CREATE VIEW および CREATE PROCEDURE を参照してください。
|
||
|
DROP VIEW および DROP PROCEDURE を参照してください。
|
||
|
REVOKE も参照してください。
|
||
|
信頼されないビューまたは信頼されないストアド プロシージャ
|
||
|
•
|
式は、結果セット内の行の列または式です。
|
|
•
|
lagオフセット式は、結果セット内の現在の行から何行前にある行の値を表示するかを示す整数式です。
|
|
•
|
lagデフォルト式は、現在のパーティション内の lagオフセット式の行がまだ結果セットに累積されていない場合に返すための値です。
|
|
1.
|
|
2.
|
SAMPLEDB を右クリックして[SQL ドキュメント]を選択します。
|
|
3.
|
SQL Editor で次の SQL スクリプトを実行して、SAMPLEDB に checkout0 というテーブルを作成します。
|
|
円記号 "\"
|
デフォルトのエスケープ文字。ワイルドカード文字または別のエスケープ文字が続く場合、その文字を文字自体と一致するリテラルとして扱います。たとえば、列値内の "%" と一致させるには、パーセント記号の前に円記号を使用します("\%")。ただし、値パターン内のエスケープ文字の後にワイルドカード文字または別のエスケープ文字以外の文字が続く場合、エスケープ文字の効果はありません。
|
||
|
2 つの一重引用符 "''"
|
|
|
•
|
2 つの一重引用符 ''。ヌル エスケープ文字を指定します。
|
|
|
|
•
|
|
•
|
選択リストに集計を含んでいる
SELECT SUM(c1) FROM t1 |
|
•
|
選択リストに DISTINCT を指定している
SELECT DISTINCT c1 FROM t1 |
|
•
|
ビューに GROUP BY を使用している
SELECT SUM(c1), c2 FROM t1 GROUP BY c2 |
|
•
|
ビューは結合である(複数のテーブルを参照する)
SELECT * FROM t1, t2 |
|
•
|
ビューに UNION 演算子を使用しており、UNION ALL が指定されていないか、もしくはすべての SELECT ステートメントが同じテーブルを参照していない
SELECT c1 FROM t1 UNION SELECT c1 FROM t1 SELECT c1 FROM t1 UNION ALL SELECT c1 FROM t2 |
|
•
|
ビューに、外部クエリ内のテーブル以外のテーブルを参照するサブクエリを含んでいる
SELECT c1 FROM t1 WHERE c1 IN (SELECT c1 FROM t2) |
|
•
|
n PRECEDING
|
|
•
|
|
•
|
|
•
|
|
•
|
|
•
|
|
|

|
•
|
両方の SET ステートメントをゼロに設定すると、データベース エンジンはストアド プロシージャをキャッシュしません。さらに、エンジンはストアド プロシージャに使用される既存のキャッシュを削除します。つまり、エンジンは、両方のステートメントをゼロに設定する前にキャッシュされたすべてのストアド プロシージャをキャッシュから消去します。
|
|
•
|
一方のステートメントだけをゼロまたはゼロ以外の値に設定した場合、もう一方のステートメントは暗黙的にゼロに設定されます。暗黙的にゼロに設定されたステートメントは無視されます。たとえば、70 プロシージャをキャッシュすることのみに関心があり、メモリの量に関心がなければ、CACHED_PROCEDURES を 70 に設定します。データベース エンジンは暗黙的に PROCEDURES_CACHE をゼロに設定します。つまり、設定を無視します。
|
|
1.
|
|
2.
|
このキーに、CachedProcedures という新しい文字列値を作成します。
|
|
3.
|
CachedProcedures をキャッシュしたいプロシージャ数に設定します。
|
|
1.
|
|
2.
|
このキーに、CachedProcedures という新しい文字列値を作成します。
|
|
3.
|
CachedProcedures をキャッシュしたいプロシージャ数に設定します。
|
|
•
|
|
•
|
ストアド プロシージャに、文字列または文字列を返す式を実行するための EXEC[UTE] ステートメントが含まれている。たとえば、次のような例です。EXEC ('SELECT Student_ID FROM ' + :myinputvar)
|
|
•
|
パスは既に存在しており、ACS ファイルの名前を含んでいる必要があります。ACS ファイルは、MicroKernel エンジンで使用される形式の 265 バイト イメージです。Zen はデフォルトで、よく使われる ACS ファイル upper.alt を C:\ProgramData\Actian\Zen\samples にインストールします。カスタム ファイルを使用することもできます。カスタム ファイルの詳細については、『Zen Programmer's Guide』のユーザー定義 ACS を参照してください。
|
|
•
|
DDF ディレクトリに対して相対的である、相対パスを使用できます。相対パスには、1 つのピリオド(現在のディレクトリ)、2 つのピリオド(親ディレクトリ)、円記号、あるいはこれら 3 つのあらゆる組み合わせを含めることができます。相対パスの円記号は、スラッシュ(/)と円記号(\)のどちらでも使用できます。同じパス内に円記号とスラッシュ文字を混在させることもできます。
|
|
•
|
Zen は、本ドキュメントのインターナショナル ソート規則に挙げられているテーブル名をサポートしています。
|
|
•
|
|
1ユーザー名は、Zen データベースにログオン可能なユーザーです。オペレーティング システムのユーザー名とは異なる場合があります。たとえば、ユーザー名 Yogine はオペレーティング システムにログオンできます。データベース Demodata でセキュリティが有効になっており、Yogine がユーザー名 DeptMgr(Demodata にログオンするユーザー名)として追加されています。
|
||
|
•
|
|
•
|
これら両方の SET ステートメントをゼロに設定すると、データベース エンジンはストアド プロシージャをキャッシュしません。さらに、エンジンはストアド プロシージャに使用される既存のキャッシュを削除します。つまり、エンジンは、両方のステートメントをゼロに設定する前にキャッシュされたすべてのストアド プロシージャをキャッシュから消去します。
|
|
•
|
一方のステートメントだけをゼロまたはゼロ以外の値に設定した場合、もう一方のステートメントは暗黙的にゼロに設定されます。暗黙的にゼロに設定されたステートメントは無視されます。たとえば、キャッシュ メモリとして 30 MB を使用することのみに関心があり、キャッシュされるプロシージャ数に関心がなければ、PROCEDURES_CACHE を 30 に設定します。データベース エンジンは暗黙的に CACHED_PROCEDURES をゼロに設定します。つまり、設定を無視します。
|
|
1.
|
|
2.
|
このキーに、ProceduresCache という新しい文字列値を作成します。
|
|
3.
|
ProceduresCache にキャッシュに使用したいメモリ量を設定します。
|
|
1.
|
|
2.
|
このキーに、ProceduresCache という新しい文字列値を作成します。
|
|
3.
|
ProceduresCache にキャッシュに使用したいメモリ量を設定します。
|
|
•
|
|
•
|
ストアド プロシージャに、文字列または文字列を返す式を実行するための EXEC[UTE] ステートメントが含まれている。たとえば、次のような例です。EXEC ('SELECT Student_ID FROM ' + :myinputvar)
|
|
これらの関数は、現在の UTC 日付/時刻値にオフセットを加算して現在の現地日付/時刻値を返します。
|
|
|
•
|
UPDATE ステートメントにオプションの FROM 句を含める場合、FROM 句の前にあるテーブル参照にエイリアスを指定することはできません。たとえば、UPDATE t1 a SET a.c1 = 1 FROM t2 WHERE a.c2 = t2.c2 とすると、次のエラーが返されます。
|
|
•
|
FROM 句に更新テーブルへの参照を 2 つ以上含める場合、それらの参照のうちの 1 つにだけエイリアスを指定できます。たとえば、UPDATE t1 SET t1.c1 = 1 FROM t1 a, t1 b WHERE a.c2 = b.c2 とすると、次のエラーが返されます。
|
|
•
|
|
•
|
|
•
|
|
•
|
文字列キー値の PervasiveEngineOptions\TempFileDirectory を ODBC.INI に手動で追加した場合、Zen は TempFileDirectory に設定されたパスを使用します。Windows における 32 ビットおよび 64 ビット Zen インストレーションに対するレジストリの場所は、どちらも HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBC.INI です。Linux および Raspbian の場合、ODBC.INI ファイルは /usr/local/actianzen/etc にあります。
|
|
•
|
ZenCC または bcfg を使用して Zen エンジンのテンポラリ ファイル ディレクトリのプロパティを設定した場合、Zen はこの場所を使用します。詳細については、『Advanced Operations Guide』のテンポラリ ファイルを参照してください。
|
|
•
|