この章の内容は次のとおりです。
TransX Utilityは、翻訳されたシード・データおよびメッセージのデータベースへのロードを簡略化します。また、次の方法でグローバリゼーションのコストも削減します。
翻訳する文字列を準備します。
文字列を翻訳します。
データベースに文字列をロードします。
TransX Utilityは翻訳データ形式エラーを最小限に抑え、データベース内の事前に指定された場所に翻訳コンテンツを正確にロードします。次にTransX Utilityのその他の利点を示します。
翻訳ベンダーは、不慣れなSQLスクリプトおよびPL/SQLスクリプトを操作する必要はありません。
様々なグローバリゼーション・サポートの設定による構文エラーが発生しません。
ピース単位のNCHAR
データに対するUNISTRコンストラクタは不要です。
翻訳されたメッセージやシード・データのロードが必要な開発グループは、TransX Utilityを使用して、グローバリゼーションの要件に合うように必要事項を簡素化できます。データが事前定義済の形式になると、TransX Utilityはその形式を検証します。
TransXでロードする場合、エンコーディングを記述するXMLを利用するため、翻訳されたデータをロードするときの正しいエンコーディングの選択が自動化されます。これは、データ・ファイルがXML標準に準拠しているかぎり、不適切なエンコーディングによるロード時のエラーは発生しないということです。
この項では、TransX Utilityが持つ次の機能について説明します。
従来、通常の翻訳データのロード方法では、ロードするファイルを切り替えるときにNLS_LANG
の設定を切り替えていました。各ロード・ファイルは、特定の言語に適したそれぞれのキャラクタ・セットでエンコードされます。元のファイルと同じファイル形式(SQLスクリプトが一般的)で翻訳を実行する必要があるため、エンコードが必要とされました。
NLS_LANG
の設定は、ファイルが言語に対応したキャラクタ・セットに適した形でロードされると同時に変更されます。TransX Utilityのロード・ツールを使用すると、開発グループおよび翻訳グループは、XMLを使用してデータベースにデータを正常にロードするまでのプロセスで正しいキャラクタ・セットを維持する必要がなくなります。
TransX Utilityのデータ・ロード・ツールは、データベースにロードされるシード・データを表す正規の方法として定義されたデータ形式に準拠します。これは直感的で理解しやすい形式です。また、翻訳グループが使用するように簡略化されています。フォーマット仕様は、データをロードするための、翻訳者によるデータの記述方法を定義します。
このデータ・ロード・ツールには、コマンドライン・インタフェースおよびプログラム可能なAPIがあります。どちらも簡単で、習得のための時間はほとんど必要ありません。
正規の形式でデータセット(入力データ)を指定すると、そのデータは、TransX Utilityによってデータベース内の指定された場所にロードされます。ただし、データをロードする表などのオブジェクトは作成しません。XMLで表すリテラル値の他に、次の式を使用してロードするデータを記述できます。
データ・ロード・ツールは、データベースに重複行があるかどうかを判断します。このツールによる重複行の処理方法を、次に示すいずれかのオプションから選択することもできます。検索キーとして指定したすべての列の値が同じである場合、重複行とみなされます。処理オプションは次のとおりです。
重複行をスキップするか、そのままの状態にします(デフォルト)。
指定したデータセットのデータで重複行を更新または上書きします。
エラーを表示します。
TransX Utilityのその他の機能について説明します。
コマンドライン・インタフェース - データ・ロード・ツールは使用しやすいコマンドを提供します。
ユーザーAPI - データ・ロード・ツールはJava APIを表示します。
検証 - データ・ロード・ツールはデータ形式を検証し、エラーをレポートします。
空白の処理 - 特に指定されていないかぎり、データセットに含まれる空白文字は有効ではありません。
アンロード - データ・ロード・ツールは、問合せに基づいて結果を標準データ形式にエクスポートします。
翻訳交換フォーマットとの親和性 - 翻訳交換フォーマットとの間で変換を行います。
ローカライズされたユーザー・インタフェース - 多数の言語でメッセージを表示します。
ここではTransXのインストール方法と、TransXの依存性について説明します。
Oracle TransX Utilityが機能するには、次のコンポーネントが必要です。
データベースの接続性 -- JDBCドライバ。このユーティリティはすべてのJDBCドライバとともに使用できますが、Oracle JDBCドライバとの使用が最適です。オラクル社では、Oracle以外のデータベースに対して実行しているTransXの保証やサポートは行いません。
XML Parser -- Oracle XML Parserバージョン2。Oracle XML Parserバージョン2は、Oracleデータベース・インストールの一部であり、Oracle Technology Network(OTN)のWebサイトから入手することもできます。
XML Schema Processor -- Oracle XML Schema Processor。Oracle XML Schema Processorは、Oracleデータベース・インストールの一部であり、Oracle Technology Network(OTN)のWebサイトからダウンロードできます。
XML SQL Utility-- Oracle XML SQL Utility(XSU)。Oracle XSUは、Oracleデータベース・インストールの一部であり、Oracle Technology Network(OTN)のWebサイトから入手することもできます。
TransXは、Oracleデータベースにパッケージ化されています。TransX Utilityは次の3つの実行ファイルで構成されています。
$ORACLE_HOME/rdbms/jlib/transx.zip
-- TransX$ORACLE_HOME/rdbms/bin/transx
(UNIXコマンドラインからTransXを起動するシェル・スクリプト)を構成するすべてのJavaクラスが含まれます。
$ORACLE_HOME\rdbms\bin\transx.bat
-- WindowsコマンドラインからTransXを起動するバッチ・ファイル。
デフォルトでは、Oracleインストーラによって、前述の指定場所のハード・ドライブにTransXがインストールされます。
次に、TransX Utilityのコマンドライン構文を示します。
java oracle.xml.transx.loader [options] connect_string username password datasource [datasource] java oracle.xml.transx.loader -v datasource [datasource] java oracle.xml.transx.loader -x connect_string username password table [column] java oracle.xml.transx.loader -s connect_string username password filename table [column]
次に、TransX Utilityのコマンドラインの例を示します。
java oracle.xml.transx.loader "dlsun9999:1521:mydb" scott tiger foo.xml java oracle.xml.transx.loader "jdbc:oracle:oci:@mydb" scott tiger foo.xml java oracle.xml.transx.loader -v foo.xml java oracle.xml.transx.loader -x "dlsun9999:1521:mydb" scott tiger emp java oracle.xml.transx.loader -s "dlsun9999:1521:mydb" scott tiger emp.xml emp ename job
表12-1に、コマンドライン・パラメータを示します。
表12-2 TransX Utilityのコマンドライン・オプション
オプション | 意味 | 説明 |
---|---|---|
-u |
既存の行を更新します。 |
このオプションを指定すると、既存の行をスキップせずに更新します。更新操作の対象から列を除外するには、 |
-e |
行がデータベースにすでに存在する場合に例外を戻します。 |
このオプションを指定すると、重複行を検出した場合に例外が発生します。デフォルトでは、重複行をスキップします。データベースおよびデータセットの検索キー列(複数可)の値が同じ場合は、行が重複しているとみなします。 |
-x |
データベースのデータを、事前定義済の形式で出力します。 |
-sオプションと同様に、TransXがロードと逆の操作を実行します。ただし、-sオプションとは異なり、 |
-s |
データベースのデータを、事前定義済の形式でファイルに保存します。 |
アンロードを実行するオプションです。このオプションはデータベースへの問合せを行って、その結果を事前定義済のXML形式にフォーマットし、指定したファイル名で格納します。 |
-p |
ロードするXMLを出力します。 |
挿入するデータセットを正規のXSU形式で出力します。 |
-t |
更新のためXMLを出力します。 |
更新するデータセットを正規のXSU形式で出力します。 |
-o |
検証を省略します(デフォルトでは、データセットは解析時に検証されます)。 |
TransXが形式の検証(デフォルトでは実行される)をスキップします。 |
-v |
データ形式を検証し、ロードせずに終了します。 |
TransXが検証を行って終了します。 |
-w |
すべての空白を保持します。 |
TransXが空白文字(\t、\r、\n、' 'など)を重要であるとみなします。文字列データ要素内の連続する空白文字は、デフォルトでは1つの空白文字とみなされます。 |
次に、TransX Utilityのサンプル・コードを示します。
String datasrc[] = {"data1.xml", "data2.xml", "data3.xml"}; // instantiate a loader TransX transx = loader.getLoader(); // start a data loading session transx.open( jdbc_con_str, usr, pwd ); // specify operation modes transx.setLoadingMode( LoadingMode.SKIP_DUPLICATES ); transx.setValidationMode( false ); // load the dataset(s) for ( int i = 0 ; i < datasrc.length ; i++ ) { transx.load( datasrc[i] ); } // cleanup transx.close();