ttTableSchemaFromOraQueryGet
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
には、次のパラメータがあります。
パラメータ | 型 | 説明 |
---|---|---|
|
|
TimesTen表の所有者(オプション)。指定しない場合は、接続IDが使用されます。 |
|
|
指定するTimesTen表はシステム表、シノニム、ビュー、マテリアライズド・ビューまたはマテリアライズド・ビューの詳細表、グローバル一時表、キャッシュ・グループ表とすることはできません。 |
|
|
表の列定義を導出する、Oracle Databaseに対する
|
結果セット
ttTableSchemaFromOraQueryGet
は次の結果セットを返します。
列 | 型 | 説明 |
---|---|---|
|
|
Oracle Databaseの |
例
次の例では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
型にマップされます。