DB抽出およびDB格納の機能を利用した運用では、データベースの種別にかかわらず以下の点に留意してください。
入力データの文字コードおよび出力データの文字コードの指定
データボックスの文字コードは、格納先または抽出元のデータベースの文字コードと一致させてください。入力データの文字コード、および出力データの文字コードの指定に誤りがある場合、DB抽出格納の動作は保証されません。指定できる文字コードについては、“B.1.3 Information Integratorで収集できるデータベース形式”を参照してください。
なお、指定に誤りがあった場合、以下の現象が発生することがあります。
DB抽出格納が出力するメッセージのパラメタが文字化けする
抽出または格納されたデータに文字化けがある
期待しないスキーマ、表または列に対する処理が行われる
文字型のデータの利用
文字型のデータを利用する場合で、データ内に文字以外の制御コードなどが含まれるときは、フォーマット定義のレコードタイプでバイナリを選択してください。
データベースの起動
データベースは処理を行う前に起動しておく必要があります。各データベースで起動方法は異なります。詳細は各データベースのマニュアルを参照してください。
データベースが作成するログ
データベースが作成するログの領域に関する管理を行いません。データベースのログの領域に関する管理は、利用者が行ってください。ログ機能の詳細は、各データベースのマニュアルを参照してください。
同一表への同時格納
同一表に対し、同時に格納処理を行うことはできません。同時に格納処理を行おうとした場合は、後続の要求が異常終了します。
格納先列の指定について
以下の条件に該当する場合、DB14101のメッセージを出力してDB格納が異常終了します。
更新格納を実施する場合
格納先表にプライマリキー、またはユニークキーとなる列が定義されていない場合
格納先表のプライマリキー、またはユニークキーとなる列に対応する入力データ項目がない場合
格納先表のプライマリキー、またはユニークキーとなる列に対応する入力データ項目が格納先列として指定されていない場合
格納先列として指定したすべての列がプライマリキー、またはユニークキーの場合
抽出方法および格納方法の指定について
抽出方法および格納方法の指定で、アンローダまたはローダを選択した場合、各データベースのアンローダまたはローダの仕様によりDB抽出格納ができない場合、自動的に動的SQLが選択されます。
DB抽出のフォーマット定義のレコードタイプについて
DB抽出とデータ変換を1つのプロセス定義で実行する場合、DB抽出のフォーマット定義のレコードタイプには「CSV」を指定することを推奨します。
DB格納失敗時のロールバックについて
動的SQLによるDB格納の場合、格納時にエラーが発生すると格納開始前の状態にロールバックされます。ローダを選択した場合、ロールバックは保証されません。ロールバックを期待する場合は動的SQLを選択してください。
なお、実行中にキャンセルを行った場合、ロールバックは保証されません。
シノニムについて
シノニムは利用できません。
DB抽出格納を利用してSymfoware Serverと連携を行う場合は、以下の運用方法に関する留意点があります。
バイナリオブジェクトのDB格納
Symfoware Serverに対してバイナリオブジェクトを格納する場合、以下の点に注意してデータ作成および運用を行ってください。
出力先テーブルに31キロバイトを超えるBLOB属性の列を含み、かつ格納方法にローダを指定した場合、データ構造定義と格納先テーブルに定義された列名、列数および列の並びを完全に一致させる必要があります。
31キロバイトを超えるSQL_LONGVARBINARY属性の列を含むテーブルの自動生成は行えません。
31キロバイト以上のSQL_LONGVARBINARY属性の列を含むデータの追加更新、更新はできません。
更新でのDB格納を実施する場合
格納対象となるテーブルに最低1個のプライマリキーが必要です。
DSI分割された表に対するDB格納を行う場合の留意点
DSI範囲外のデータが存在した場合、該当レコードを無視して格納処理を続行します。なお、エラーメッセージは出力されませんので、入力データと格納先表を十分確認の上、実施してください。
アンローダによるDB抽出について
以下の場合、アンローダによるDB抽出はできません。自動的に動的SQLで抽出を行います。
1つ以上の列にNULL制約がある場合
SQL_NUMERIC型の列を抽出する場合で、格納先のデータボックスのフォーマット定義が、以下の2つを両方とも満たす指定になっていない場合
符号位置が先頭(TOP)
符号表現が文字形式(STR)
SQL_DATE型、またはSQL_TIMESTAMP型の列が含まれる場合
アンローダ、および、ローダ利用時のデータベースユーザについて
アンローダおよびローダを利用する場合、データベースユーザは、データソース定義で指定したユーザーIDではなく、Information Integratorサーバの起動ユーザーとなります。データベースの権限設定は、Information Integratorサーバの起動ユーザーに対して行ってください。
DB抽出格納を利用してOracleと連携を行う場合は、以下の運用方法に関する留意点があります。
DB格納で文字型データにNULL値が含まれる場合
文字型データ中にNULL値が含まれている場合は、フォーマット定義の「レコードタイプ」で「バイナリ」を選択してください。「CSV」を選択した場合、エラーメッセージ「DB14065」が発生します。
バイナリオブジェクトのDB格納
Oracleに対してバイナリオブジェクトを格納する場合、以下の点に注意してデータ作成および運用を行ってください。
ローダでの格納はできません。
31キロバイトを超えるバイナリオブジェクトを含むデータの追加更新、更新はできません。
ローダによるDB格納の注意事項
ローダを使用したDB格納を行う場合、以下の点に注意してください。
以下に示す現象を回避するには、格納方法として動的SQLを採用してください。
入力データ項目が整数属性または半語整数属性の場合、かつ入力データに負の最小値(それぞれ-2147483648、-32768)が含まれる場合は、NULL値として格納されます。
入力データ項目が数値属性、かつ入力データに制御文字に該当する値(「0x0A」、「0x0D」など)が含まれる場合、格納処理が異常終了することがあります。
UNIXの場合、文字型データ中に制御文字に該当する値「0x0A」が含まれる場合、格納処理が異常終了します。
Oracleプロセス内スレッドのスケジューリング(Windowsの場合のみ)
WindowsでDB格納を行う場合に、動作が停止し無応答になることがあります。この現象は、Oracleプロセス内のスレッドのWindowsスケジューリング優先順位が低い場合に発生することがあります。上記の現象を回避するには、この優先順位を高くしてください。レジストリの「\HKEY_LOCAL_MACHINE\SOFTWARE\Oracle」にある「ORACLE_PRIORITY」を以下のように設定します。
ORACLE_PRIORITY:REG_EXPAND_SZ:CLASS:normal;DEF:highest |
レジストリの設定については、Windowsのマニュアルを参照してください。
ローダによるパーティション指定のDB格納について
パーティションを指定した格納では、以下の留意点があります。
特定パーティションへの格納
格納先表にグローバルキーがある場合は、SQL*Loaderでの格納はできません。
動的SQLによるパーティション指定のDB格納について
パーティションを指定した格納では、以下の留意点があります。
パーティションキーと一意制約キー
パーティションキーとプライマリキーなどの一意性制約キーが異なる列に設定してある場合、DB抽出格納ではパーティションキーを通常の列と同様に更新します。その結果、データによっては対象レコードが更新前後で格納されるパーティションが変更されることがあり、更新処理ができなくなるため、DB抽出格納は表内の更新対象レコード一度削除し、格納できるパーティションへ再挿入を行います。
上記の処理が発生する可能性がある場合、データベースと環境変数「NLS_LANG」のキャラクタ・セットを統一してください。キャラクタ・セットが統一されていないと、表内のデータに欠損が発生するおそれがあります。
Oracle 64ビット版を使用する上でのLD_LIBRARY_PATHの設定について(Solarisのみ)
32ビットアプリケーションのライブラリを参照してください。
LD_LIBRARY_PATH=$ORACLE_HOME/lib32:$LD_LIBRARY_PATH |
データベースリンクについて
データベースリンクは利用できません。
アンローダによるDB抽出について
アンローダによるDB抽出はできません。
DB抽出格納を利用してSQL Serverと連携を行う場合は、以下の運用方法に関する留意点があります。
バイナリオブジェクトのDB格納
SQL Serverに対してバイナリオブジェクトを格納する場合、以下の点に注意してデータ作成および運用を行ってください。
31キロバイトを超えるバイナリオブジェクトを含むデータの追加更新、更新はできません。
bcpユーティリティを使用する場合のデータベース名、スキーマ名および表名について
SQL Serverの予約語をデータベース名、スキーマ名または表名として使用した場合、bcpユーティリティによるDB抽出およびDB格納はできません。
bcpユーティリティでのDB格納の動作モードについて
bcpユーティリティは、高速モードまたは通常モードでの格納が可能です。なお、高速モードでの格納では、異常発生時のロールバックは行われません。
以下の条件をすべて満たす場合、高速モードで動作します。
格納先表にインデックスが存在しない
格納先データベースのselect into/bulkcopyオプションにオンを指定しない
bcpユーティリティの動作モードの切り替えは、DB格納では制御できません。また、DB格納が格納先表を生成する場合、高速モードで動作します。
DB格納時の文字列属性項目の末尾空白文字列について
文字列属性の入力データ項目の末尾空白文字列の扱いは、SQL Serverの動作に従います。SQL Serverでは、格納先列に対してNULL文字を使用可能としている場合、末尾空白文字列は切り捨てられます。格納先列に対してNULL文字を使用不可能としている場合、末尾空白文字列は格納されます。詳細については、SQL Serverのマニュアルを参照してください。
なお、DB格納が格納先表を生成する場合、格納先列に対するNULL文字の扱いは、格納先データベースの設定に従います。
DB格納時に表を自動生成する場合のNOT NULL制約について
DB格納が格納先表を生成する場合、格納先列に対するNOT NULL制約の有無は、格納先データベースの設定に依存します。したがって、格納先データベースにNOT NULL制約を付加する設定があった場合、NULL値を含むデータの格納処理は失敗します。詳細については、SQL Serverのマニュアルを参照してください。
Windows認証が設定されているSQL Serverと連携(格納または抽出)する場合について
SQL Server、およびODBCデータソースのセキュリティ設定で、認証を「Windows認証」に設定してある場合、Information Integratorサーバの動作するOS上に、環境変数「IFIDBSQLSLMODE=Win」を設定してください。
注意
この環境変数を設定することで、Information Integratorサーバの起動ユーザーで格納または抽出を実施します。データソース定義で指定したユーザーIDによる格納または抽出は行いません。
アンローダ(bcpユーティリティ)でのDB抽出について
抽出する列数が多い場合(例:500以上)、DB14204 のエラーが発生することがあります。抽出する列数が多い場合は、動的SQLでDB抽出を行ってください。
アンローダによるDB抽出について
以下の場合、アンローダによるDB抽出はできません。自動的に動的SQLで抽出を行います。
SQL_NUMERIC型の列を抽出する場合で、格納先のデータボックスのフォーマット定義に、以下の2つを両方とも満たす指定になっていない場合
符号位置が先頭(TOP)
符号表現が文字形式(STR)
SQL_TIMESTAMP型の列が含まれる場合
フォーマット定義シートの「レコードタイプ」に「バイナリ形式」が指定されている場合
DB抽出を利用してその他のデータベース(ODBC接続)と連携を行う場合は、以下の運用方法に関する留意点があります。
その他のデータベース(ODBC接続)利用時の動作について
その他のデータベース(ODBC接続)では、指定されたODBCドライバを使ってデータを抽出しますが、期待する動作をするかについては、利用するデータベースとODBCドライバの仕様に依存します。利用する場合には、十分な検証を行った上で、お客様の責任範囲においてご利用ください。