ttLoadFromOracle
SELECT
文、およびパラレル・ロードのスレッド数をとります。Oracle Database表に対して問合せを実行し、指定したTimesTen表に結果セットをロードします。ロードの実行中に、TimesTenデータベースに256行挿入されるたびに暗黙的なコミットが実行されます。
Oracle DatabaseからTimesTenの表にデータをロードする際、文字セットの変換は行われません。TimesTenデータベースとOracle Databaseは同じ文字セットを使用する必要があります。
このプロシージャでは接続属性UID
、接続属性OraclePWD
および接続属性OracleNetServiceName
を指定する必要があります。このプロシージャをコールした後に、コミットする必要があります。
詳細と使用方法の情報は、『Oracle TimesTen In-Memory Databaseオペレーション・ガイド』の「キャッシュなしでのOracle DatabaseからTimesTen表へのデータのロード」を参照してください。
必要な権限
このプロシージャには、ロードする表に対するINSERT
権限が必要です。セッションは、Oracleデータベースに対して問合せを実行するために必要な、すべての権限を持っている必要があります。
TimesTen ScaleoutおよびTimesTen Classicでの使用
このプロシージャは、TimesTen Classicでサポートされています。
TimesTen Scaleoutアプリケーションでこの組込みプロシージャをコールできます。
TimesTen Scaleoutの場合、このプロシージャは、コール元の要素に対してローカルに実行されます。
関連ビュー
このプロシージャには関連ビューはありません。
構文
ttLoadFromOracle(['tblOwner'], 'tblName', 'Query' [,numThreads], 'Options')
パラメータ
ttLoadFromOracle
には、次のパラメータがあります。
パラメータ | 型 | 説明 |
---|---|---|
|
|
TimesTen表の所有者(オプション)。指定しない場合は、接続IDが使用されます。 |
|
|
Oracle Databaseからのデータがロードされる表の名前。表がまだない場合には、組込みプロシージャttTableSchemaFromOraQueryGetを使用して、表を作成するスキーマを取得できます。 指定するTimesTen表はシステム表、シノニム、ビュー、マテリアライズド・ビューまたはマテリアライズド・ビューの詳細表、グローバル一時表、キャッシュ・グループ表とすることはできません。 |
|
|
表の列定義を導出する、Oracle Databaseに対する Oracle Databaseに対する問合せはパラメータ・バインディングを持つことができません。 |
|
|
パラレル・ロードのスレッド数(オプション)。 表のパラレル・ロードを指定します。同時にロードを実行するスレッドの数を指定します。1つのスレッドでOracleデータベースからのバルク・フェッチを実行し、その他のスレッドでTimesTenへの挿入を実行します。各スレッドで独自の接続またはトランザクションが使用されます。 NumThreadsの最小値は2です。最大値は10です。10より大きい値を指定すると、TimesTenは値10を割り当てます。 また、readersオプションを使用して、 |
|
|
デフォルトは 詳細は、次の表を参照してください。 |
オプションの文字列
このオプションは、キー=値のペアとして指定し、各ペアはセミコロンで区切ります。
オプションのパラメータ | 値 | 説明 |
---|---|---|
|
|
このオプションは、特定のインスタンスの行のみをロードします。グリッドに特定のインスタンスをロードしてから、このオプションを使用します。このオプションを使用すると、 このオプションは、TimesTen Scaleoutでのみサポートされます。 デフォルト値は |
|
|
このオプションは、組込みプロシージャがエラー・メッセージを返すエラーしきい値を設定します。 デフォルト値は |
|
|
このオプションにより、 デフォルト値は |
|
|
このオプションは、特定のSCNからロード操作を再開します。 デフォルト値は、最新のSCNです。 |
|
|
このオプションは、パフォーマンス上の利点があるバルク挿入モードを有効にします。 このオプションは、TimesTen IMDBでのみサポートされます。 デフォルト値は |
|
|
このオプションは、 たとえば、numThreadsパラメータに |
結果セット
ttLoadFromOracle
は、次の結果セットを返します。
列 | 型 | 説明 |
---|---|---|
|
|
ロードされた行数。 |
|
|
エラーが発生した行数。 |
|
|
TimesTenのエラー・コードを示し、次のいずれかになります。
|
|
|
エラー・メッセージ(次の内容が含まれます):
|
例
次の例では、OracleデータベースのHR
.EMPLOYEES
表の従業員に関するTimesTen表のロードを選択し、それをTimesTen HR.EMPLOYEES
表にロードしています。この例ではエラーが返されます。この例では、列STATE
はTT_TINYINT
です。
Command> CALL ttLoadFromOracle ('HR','EMPLOYEES', 'SELECT * FROM HR.EMPLOYEES'); < 99, 0, 0, 'Started=2014-08-01 13:48:21; Ended=2014-08-01 13:48:23; Statement=ttLoadFromOracle('HR', 'SELECT * FROM HR.EMPLOYEES'); SCN=1234567; Errors=1; Rows Loaded=99' > < NULL, NULL, 2614,'Value outside of range supported by integral type. Column STATE=-1' >
ノート
-
TimesTenはロードするまでは表を空にしません。ターゲット表に主キーは必要ありません。列型または列数が一致しないために問合せの出力をターゲット表の行に変換できない場合、TimesTenはエラーを返します。TimesTen LOB列へのデータのロードはサポートしていません。Oracle Databaseに対する問合せにLOB出力がある場合、VAR型にマップされます。
-
ロード・プロセスでは、TimesTen表の列のデータ型とサイズが結果セットのデータ型とサイズに一致することを確認しません。かわりに、挿入が試行され、列のデータ型をマップできない場合、またはSQL問合せからのOracle DatabaseデータがTimesTenの列サイズを超える場合、TimesTenはエラーを返します。LOB列は4MBに切り捨てられます。
-
列を追加するために表を変更すると、セカンダリ・パーティションが追加されます。表への複数のパーティションのロードは、
ttLoadFromOracle
ではサポートされていません。