この章では、PL/SQLの言語要素および機能の概要を示し、TimesTenにおけるサポートとOracle Databaseにおけるサポートを比較します。Oracle Databaseマニュアルでは、これらの機能の多くは、『Oracle Database PL/SQL言語リファレンス』のPL/SQLの言語要素に関する項で説明されています。
表9-1 TimesTenにおけるPL/SQL言語要素および機能のサポート
機能名 | 説明 | サポート | 例/コメント |
---|---|---|---|
|
PL/SQLプロシージャ、ファンクション、またはパッケージを再コンパイルします。 |
Y |
構文およびセマンティクスはOracle Databaseの場合と同じです。 これらの文の詳細は、『Oracle TimesTen In-Memory Database SQLリファレンス』のSQL文に関する説明を参照してください。 |
|
セッション・パラメータを動的に変更します。 |
Y |
TimesTenでは、「PL/SQL接続属性」で説明されているように、 TimesTenにおけるこの文の詳細は、『Oracle TimesTen In-Memory Database SQLリファレンス・ガイド』のALTER SESSIONに関する説明を参照してください。 |
代入文 |
変数、パラメータまたは要素の現在の値を設定します。 |
Y |
「PL/SQLの変数および定数」を参照してください。 |
|
ルーチンを自律型としてマークします。 |
N |
TimesTenでは、自律型トランザクションはサポートされていません。 |
ブロック宣言 |
ブロック(PL/SQLソース・プログラムの基本単位)を宣言します。 |
Y |
「PL/SQLブロック」を参照してください。 |
|
複数行を選択します。 |
Y |
PL/SQLで |
|
SQL内からルーチンを実行します。 |
Y |
TimesTenでは、Oracle Database、またはTimesTen組込みプロシージャと同様に、 |
|
式を評価し、複数の値と比較して、比較結果がTRUEの場合にアクションを実行します。 |
Y |
「PL/SQL制御構造」を参照してください。 |
|
カーソルまたはカーソル変数をクローズします。 |
Y |
(特に)例2-13「カーソルを使用した従業員情報の取得」を参照してください。 |
コレクション定義 |
すべて同じ型の要素の順序付きグループであるコレクションを指定します。 |
Y |
たとえば、連想配列(索引付き表またはPL/SQL表)、ネストした表、VARRAYなどがあります。 TimesTenは、PL/SQLプログラムのこれら3つのコレクション型のすべてをサポートしますが、連想配列だけは、PL/SQLおよび他の言語(OCIまたはJDBC)で記述されたアプリケーション間のバウンド・パラメータとしてサポートされます。 「PL/SQLでのコレクションの使用」を参照してください。 |
コレクション・メソッド |
コレクションに対して動作し、ドット表記法を使用してコールされる組込みサブプログラム。 |
Y |
『Oracle Database PL/SQL言語リファレンス』のコレクション・メソッドに関する説明を参照してください。コレクション・メソッドには、 |
コメント |
説明のためにコードに含められるテキスト。 |
Y |
1行コメントと複数行コメントがサポートされています。 |
|
現在のトランザクションを終了し、トランザクションで加えられたすべての変更を確定します。 |
Y |
『Oracle TimesTen In-Memory Database SQLリファレンス・ガイド』のCOMMITに関する説明を参照してください。 重要: TimesTenでは、 |
接続属性 |
Oracle Databaseの初期化パラメータに相当します。 |
Y |
「PL/SQL接続属性」を参照してください。これらの接続属性の詳細は、『Oracle TimesTen In-Memory Databaseリファレンス』のPL/SQL初期接続属性およびPL/SQL一般接続属性に関する説明も参照してください。 |
定数と変数の宣言 |
PL/SQLコードで使用する定数と変数を、PL/SQLブロック、サブプログラムまたはパッケージの宣言部で指定します。 |
Y |
「PL/SQLの変数および定数」を参照してください。 |
|
ループの現在の反復を終了し、制御を次の反復に渡します。 |
Y |
「CONTINUE文」を参照してください。 |
|
PL/SQLファンクションを作成します。 |
Y |
「PL/SQLのプロシージャおよびファンクション」を参照してください。また、『Oracle TimesTen In-Memory Database SQLリファレンス・ガイド』のCREATE FUNCTIONに関する説明も参照してください。 TimesTenで |
|
ライブラリを共有しているオペレーティング・システムに関連するスキーマ・オブジェクトを作成します。 |
N |
|
|
これらの文を同時に使用して、PL/SQLパッケージ定義およびパッケージ本体を作成します。 |
Y |
構文およびセマンティクスはOracle Databaseの場合と同じです。 「PL/SQLパッケージ」を参照してください。また、『Oracle TimesTen In-Memory Database SQLリファレンス』のCREATE PACKAGEおよびCREATE PACKAGE BODYに関する説明も参照してください。 TimesTenで |
|
PL/SQLプロシージャを作成します。 |
Y |
「PL/SQLのプロシージャおよびファンクション」を参照してください。また、『Oracle TimesTen In-Memory Database SQLリファレンス・ガイド』のCREATE PROCEDUREに関する説明も参照してください。 注意: TimesTenでは、 |
|
ユーザー定義のオブジェクト型またはコレクション型を作成します。 |
N |
TimesTenは |
|
セッション・タイムゾーンの現在の日付を戻します。 |
Y |
TimesTenでは、UTC(世界標準時)で現在の日時を戻します。TimesTenは、ローカル・タイムゾーンをサポートしていません。 |
カーソル属性 |
カーソルまたはカーソル変数に追加され、データ操作文の実行に関する有用な情報を戻します。 |
Y |
明示カーソルとカーソル変数には、 暗黙カーソル(SQL)には、さらに 「%ROWCOUNT属性および%NOTFOUND属性の使用」および「SQL%BULK_ROWCOUNTでのFORALLの使用」を参照してください。また、『Oracle Database PL/SQL言語リファレンス』の名前付きカーソル属性に関する説明も参照してください。 |
カーソル宣言 |
カーソルを宣言します。複数行の問合せを実行するために、TimesTenによって、処理情報が格納される名前のない作業領域がオープンされます。カーソルを使用して、作業領域に名前を付けたり、情報にアクセスしたり、行を個別に処理できます。 |
Y |
「PL/SQLプログラムでのカーソルの使用」を参照してください。 |
カーソル変数(REF CURSOR) |
SQL結果セット上のカーソルへのハンドルとして機能します。 |
Y |
TimesTenでは、 「PL/SQL REF CURSOR」を参照してください。 |
Databaseリンク(dblinks) |
Oracle Databaseサーバーから別のデータベース・サーバーへの一方向の接続パスを定義するポインタ。 |
N |
TimesTenはデータベース・リンクをサポートしていません。 |
|
表から行を削除します。 |
Y |
『Oracle TimesTen In-Memory Database SQLリファレンス・ガイド』のDELETEに関する説明を参照してください。 |
|
指定されたとおりにPL/SQLプロシージャ、ファンクション、またはパッケージを削除します。 |
Y |
構文およびセマンティクスはOracle Databaseの場合と同じです。 これらの文の詳細は、『Oracle TimesTen In-Memory Database SQLリファレンス・ガイド』のSQL文に関する説明を参照してください。 |
エラー・レポート |
(説明なし) |
Y |
TimesTenアプリケーションでは、エラーのレポートにTimesTenエラー・コードではなくOracle Databaseエラー・コードが使用されます。エラー・コードを含むメッセージは、TimesTenエラー・メッセージまたはOracle Databaseエラー・メッセージです。 |
|
ユーザー定義の例外をTimesTenエラー番号に関連付けます。 |
Y |
『Oracle Database PL/SQL言語リファレンス』のEXCEPTION_INITプラグマに関する説明を参照してください。 |
例外定義 |
実行時エラーまたは警告状態である例外を指定します。事前定義の例外とユーザー定義の例外があります。 |
Y |
事前定義の条件は暗黙的に発生します。ユーザー定義の例外は、 第4章「エラーと例外の処理」を参照してください。 |
|
動的SQL文を作成して実行します。 |
Y |
TimesTenは、これをOracle Databaseと同じようにサポートし、SQL DMLまたはDDL文を実行したり、PL/SQL無名ブロックを実行したり、PL/SQLストアド・プロシージャまたはファンクションをコールします。「PL/SQLでの動的SQL(EXECUTE IMMEDIATE文)」を参照してください。 TimesTenでは、 |
クライアント・アプリケーションからのPL/SQLの実行 |
(説明なし) |
Y |
TimesTenでは、ODBC、OCI、Pro*C/C++、TTClasses(一連のTimesTen C++クラス)、JDBC、およびODP.NETがサポートされています。 |
SQLからのPL/SQLの実行 |
(説明なし) |
N |
TimesTenでは、((静的または動的)な)SQL文からPL/SQLを実行できません。 |
|
ループを終了し、制御をループの最後に渡します。 |
Y |
(特に)例6-2「ALTER SESSIONを使用した属性設定の変更」を参照してください。 |
式定義 |
オペランド(変数、定数、リテラル、演算子など)と演算子を組み合せた式を指定します。最も単純な式は1つの変数です。 |
Y |
『Oracle Database PL/SQL言語リファレンス』の式に関する説明を参照してください。 |
|
複数行の問合せの結果セットからデータ行を取得します。 |
Y |
(特に)例2-13「カーソルを使用した従業員情報の取得」を参照してください。 |
|
入力コレクションをSQLエンジンに送信する前にバルク・バインドします。 |
Y |
「FORALL操作およびBULK COLLECT操作」を参照してください。 |
ファンクションの宣言と定義 |
PL/SQLブロックまたはパッケージで宣言および定義できる、単一値を戻すサブプログラムまたはストアド・プログラムを指定します。 |
Y |
TimesTenでは、ストアド・ファンクションまたはプロシージャを無名ブロックで、または TimesTen SQLで 後述の「プロシージャの宣言と定義」も参照してください。 |
|
文ラベルまたはブロック・ラベルに無条件に分岐します。 |
Y |
『Oracle Database PL/SQL言語リファレンス』のGOTO文に関する説明を参照してください。 |
|
関連付けられているブール式の値に応じて、一連の文を実行するかスキップします。 |
Y |
「条件制御」を参照してください。 |
初期化パラメータ |
Oracleデータベースでの初期化パラメータの設定。 |
n/a |
TimesTen接続属性が相当します。上記のエントリを参照してください。 |
|
サブプログラムのコールをインライン化するかどうかを指定します。 |
Y |
『Oracle Database PL/SQL言語リファレンス』のINLINEプラグマに関する説明を参照してください。 |
|
1つ以上のデータ行を表に挿入します。 |
Y |
「INSERT文を使用する例」を参照してください。また、『Oracle TimesTen In-Memory Database SQLリファレンス・ガイド』のINSERTに関する説明も参照してください。 |
リテラル宣言 |
数値、文字列、またはブール値を指定します。 |
Y |
例: 数値リテラル: 135 文字列リテラル: 'TimesTen' |
|
指定されたロック・モードでデータベース表をロックします。 |
N |
TimesTenでは、 |
|
一連の文を複数回実行します。たとえば、 |
Y |
例2-8「WHILEループの使用」を参照してください。また、『Oracle Database PL/SQL言語リファレンス』の基本LOOP文に関する説明も参照してください。 |
|
1つ以上のソースから行を選択して、更新したりターゲット表に挿入できます。 |
Y |
『Oracle TimesTen In-Memory Database SQLリファレンス・ガイド』のMERGEに関する説明を参照してください。 |
ネイティブ動的SQLの実行 |
|
Y |
上記の |
表、列、プロシージャ、ファンクションおよびその他のデータベース・オブジェクトの名前で、非ASCIIキャラクタ・セットを使用。 |
N |
これはTimesTenではサポートされていません。 |
|
表、列、プロシージャ、ファンクションおよびその他のデータベース・オブジェクトの名前で、引用符内に大文字以外の文字を使用。 |
N |
これは、TimesTenでサポートされていません(例: create or replace procedure "MixedCase" as begin ... end; |
|
|
これは、操作が行われない文です。アクションは実行されずに、制御は次の文に渡されます。 |
Y |
『Oracle Database PL/SQL言語リファレンス』のNULL文に関する説明を参照してください。 |
オブジェクト型宣言 |
SQLで作成され、データベースに格納されるカスタム・オブジェクト型を指定します。 |
N |
TimesTenは、データベース・レベルでオブジェクト型をサポートしていません。たとえば、 |
|
カーソルに関連付けられた問合せを実行します。問合せを処理するためのデータベース・リソースを割り当て、結果セットを識別します。 |
Y |
例2-13「カーソルを使用した従業員情報の取得」を参照してください。 |
|
カーソル変数(REF CURSOR)に関連付けられた |
Y |
|
パッケージ宣言 |
関連するPL/SQLの型、項目およびサブプログラムを論理的にグループ化するデータベース・オブジェクトであるパッケージを指定します。 |
Y |
SQL文 「PL/SQLパッケージ」を参照してください。 |
プロシージャの宣言と定義 |
PL/SQLブロックまたはパッケージで宣言および定義できる、特定のアクションを実行するサブプログラムまたはストアド・プログラムを指定します。 |
Y |
TimesTenでは、ストアド・プロシージャまたはファンクションを無名ブロックで、または TimesTen SQLで 前述の「ファンクションの宣言と定義」も参照してください。 |
|
PL/SQLブロックまたはサブプログラムの通常の実行を停止し、制御を例外ハンドラに渡します。 |
Y |
「RAISE文の使用」を参照してください。 |
レコード定義 |
データベース行と同様に様々な型のデータ値が格納される複合変数であるレコードを定義します。 |
Y |
「PL/SQLでのレコードの使用」を参照してください。 |
|
パッケージ指定またはオブジェクト型指定内のサブプログラム(通常はファンクション)が、データベース表またはパッケージ変数の読取りや書込みを行わないことを示します。 |
N |
TimesTenでは、このプラグマは無視されます。 |
結果のキャッシュ |
これは、アプリケーションを実行するセッションの度に利用できる共有グローバル・エリア(SGA)でのPL/SQLファンクションの結果をキャッシュする機能です。 |
N |
TimesTenは、これをサポートしていません。 |
|
サブプログラムの実行を即座に完了し、制御をコール元に戻します。実行は、サブプログラムのコール後の文から再開します。 |
Y |
『Oracle Database PL/SQL言語リファレンス』のRETURN文に関する説明を参照してください。 |
|
この句が属している文によって戻された値を格納する変数を指定します。 |
Y |
「RETURNING INTO句」および「RETURNING INTOを使用する例」を参照してください。 |
|
現在のトランザクション中に加えられたデータベースの変更を元に戻します。 |
Y |
『Oracle TimesTen In-Memory Database SQLリファレンス・ガイド』のROLLBACKに関する説明を参照してください。 重要: TimesTenでは、 |
|
データベース表内の行を表すレコード型を指定します。 |
Y |
例2-2「代入演算子を使用した変数への値の代入」を参照してください。 |
|
トランザクション処理の現在の位置に名前を付けてマークします。 |
N |
TimesTenでは、SAVEPOINTはサポートされていません。 |
|
表の1行から値を取得し( |
Y |
例2-3「SELECT INTOを使用した変数への値の代入」を参照してください。また、『Oracle Database PL/SQL言語リファレンス』の問合せ結果セットの処理に関する説明も参照してください。 |
|
サーバーへの1回のコールの間のみ、パッケージ状態が必要であることを示します。 |
N |
TimesTenでは、 |
|
読取り専用トランザクションまたは読取り/書込みトランザクションを開始します。 |
N |
TimesTenでは、 |
|
|
Y |
『Oracle TimesTen In-Memory Database SQLリファレンス』のSOUNDEXに関する説明を参照してください。 |
SQLカーソル |
|
Y |
「PL/SQLプログラムでのカーソルの使用」を参照してください。 |
|
直前に発生した例外の番号コードを戻します。 |
Y |
エラー条件が同じ場合、組込みファンクションの このことについては、「TimesTenエラー・メッセージおよびSQLコード」でも説明しています。 |
|
error-number引数に関連付けられているエラー・メッセージを戻します。 |
Y |
エラー条件が同じ場合、組込みファンクションの このことについては、「TimesTenエラー・メッセージおよびSQLコード」でも説明しています。 |
提供パッケージ |
これらは、データベースに提供されるPL/SQLパッケージです。 |
Y |
TimesTenには、Oracle Database PL/SQLの提供パッケージのサブセットが用意されています。 第8章「TimesTenが提供するPL/SQLパッケージ」を参照してください。 |
システム表およびシステム・ビュー |
これらは、管理目的でデータベースに提供される表およびビューです。 |
Y |
TimesTenでは、Oracle Databaseシステム表およびシステム・ビューのサブセットがサポートされています。 『Oracle TimesTen In-Memory Databaseシステム表およびビュー・リファレンス』のシステム表に関する説明を参照してください。 |
|
データベースが常駐しているシステムの日付を、小数秒およびタイムゾーンを含めて戻します。 |
N |
戻り型 別の方法として、動的SQLを使用して declare ts timestamp; begin execute immediate 'select tt_sysdate from dual' into ts; -- ts has millisecond resolution end; |
トリガー |
これらは、データベースに格納されており、表に行を追加するなどの特定の条件が発生したときにアクティブ化されるプロシージャです。 |
N |
TimesTenはトリガーをサポートしていませんが、XLAを使用して同様の機能を実現できます。『Oracle TimesTen In-Memory Database C開発者ガイド』のXLAおよびTimesTenイベント管理に関する説明を参照してください。 |
ライブラリ・キャッシュのパフォーマンスおよびアクティビティについての統計情報を戻します。 |
Y |
『Oracle TimesTen In-Memory Databaseリファレンス』のttPLSQLMemoryStatsに関する説明を参照してください。 注意: Oracle Databaseでは、 |
|
|
フィールド、レコード、ネストした表、データベース列または変数のデータ型をハードコードするのではなく、宣言で使用できます。このことは、特にデータベース列を参照する変数、フィールドおよびパラメータを宣言する場合に役立ちます。 |
Y |
「PL/SQLの変数および定数」を参照してください。 |
|
表のすべての行または検索条件を満たす行の1つ以上の列の値を更新します。 |
Y |
『Oracle TimesTen In-Memory Database SQLリファレンス・ガイド』のUPDATEに関する説明を参照してください。 |
|
Oracle Databaseでは、このシステム・ビューを使用すると、ライブラリ・キャッシュのパフォーマンスやアクティビティに関する統計情報が戻されます。 |
n/a |
TimesTenでは、 |