ttTableSchemaFromOraQueryGet

この組込みプロシージャはOracle Databaseの表に対するSELECT問合せを評価し、実行を選択できるCREATE TABLE SQL文を生成します。TimesTen CREATE TABLE文は結果セットの列名とタイプを突き合せます。

このプロシージャはTimesTen表を作成しません。表スキーマを識別する文のみを返します。

詳細は、『Oracle TimesTen In-Memory Databaseオペレーション・ガイド』「キャッシュなしでのOracle DatabaseからTimesTen表へのデータのロード」を参照してください。

必要な権限

このプロシージャには、権限は必要ありません。セッション・ユーザーは、Oracle Databaseに対して問合せを実行するために必要なすべての権限を持っている必要があります。

TimesTen ScaleoutおよびTimesTen Classicでの使用

このプロシージャは、TimesTen Classicでサポートされています。

TimesTen Scaleoutアプリケーションでこの組込みプロシージャをコールできます。

TimesTen Scaleoutの場合、このプロシージャは、コール元の要素に対してローカルに実行されます。

関連ビュー

このプロシージャには関連ビューはありません。

構文

ttTableSchemaFromOraQueryGet(['tblOwner'], 'tblName', 'selectSQL')

パラメータ

ttTableSchemaFromOraQueryGetには、次のパラメータがあります。

パラメータ 説明

tblOwner

TT_CHAR (30)

TimesTen表の所有者(オプション)。指定しない場合は、接続IDが使用されます。

tblName

TT_CHAR(30) NOT NULL

CREATE TABLE文の表名。

指定するTimesTen表はシステム表、シノニム、ビュー、マテリアライズド・ビューまたはマテリアライズド・ビューの詳細表、グローバル一時表、キャッシュ・グループ表とすることはできません。

selectSQL

TT_VARCHAR(409600) NOT NULL

表の列定義を導出する、Oracle Databaseに対するSELECT問合せ。

SELECTリストのすべての式には、列別名を指定する必要があります。指定しない場合、実装に依存した列名が想定され、式は評価されません。

結果セット

ttTableSchemaFromOraQueryGetは次の結果セットを返します。

説明

createSQL

TT_VARCHAR(409600) NOT NULL

Oracle DatabaseのSELECT問合せの結果セットを突き合せるCREATE TABLE文。

次の例ではCREATE TABLE文が返され、TimesTen HR.EMPLOYEES表が作成されます。この表のすべての列はOracle DatabaseのHR.EMPLOYEES表にあります。

Command> call ttTableSchemaFromOraQueryGet('hr','employees',
 'SELECT * FROM hr.employees');
< CREATE TABLE "HR"."EMPLOYEES" (
"EMPLOYEE_ID" number(6,0) NOT NULL,
"FIRST_NAME" varchar2(20 byte),
"LAST_NAME" varchar2(25 byte) NOT NULL,
"EMAIL" varchar2(25 byte) NOT NULL,
"PHONE_NUMBER" varchar2(20 byte),
"HIRE_DATE" date NOT NULL,
"JOB_ID" varchar2(10 byte) NOT NULL,
"SALARY" number(8,2),
"COMMISSION_PCT" number(2,2),
"MANAGER_ID" number(6,0),
"DEPARTMENT_ID" number(4,0)
 ) >
1 row found.

ノート

  • Oracle Databaseに対する問合せはパラメータ・バインディングを持つことができません。

  • 問合せにOracle Databaseに関する記述がない場合(構文エラーなど)、TimesTenはエラーを返します。

  • 出力列タイプにTimesTenの一致タイプがない場合、TimesTenは警告および列定義の次の行を出力します。>>>>column_name column_type /* reason */

  • Oracle Databaseへの問合せでTimesTenでサポートされていないタイプが出力された場合、TimesTenがサポートするタイプに出力を明示的に変更するために、SELECTリストでCAST句を追加できます。SELECTリストの式について、それぞれ列別名を指定できます。

  • Oracle Databaseに対する問合せにLOB出力がある場合、VAR型にマップされます。