IMPORTコマンドは、テキスト・ファイルまたはスプレッドシートからアナリティック・ワークスペースに、あるいはEIFファイルから別のアナリティック・ワークスペースにデータを転送するコマンドです。
IMPORTコマンドの構文は、インポートするデータがある場所によって異なるので、次のようにソース・ファイルの種類別に説明します。
IMPORT(EIFから)コマンドを使用して、EIFファイルからOracle OLAPアナリティック・ワークスペースにデータおよび定義をコピーできます。IMPORTは、コマンドにディメンションを指定しなくても、ワークスペースに存在していない、インポートされるデータのディメンションもコピーします。
IMPORT(EIFから)は、通常EXPORT(EIF)とともに使用して、Oracle OLAPアナリティック・ワークスペースの一部を別のOracle OLAPアナリティック・ワークスペースにコピーしますが、これは、オブジェクトをソース・ワークスペースからEIFファイルにエクスポートし、次にそのオブジェクトをEIFファイルからターゲット・ワークスペースにインポートします。ソースおよびターゲットのワークスペースが存在する場所は、同じプラットフォームでも異なるプラットフォームでも構いません。コンピュータ間でEIFファイルを転送する場合、バイナリ転送を使用してプラットフォーム間のファイル形式の非互換性の問題を回避します。EIFファイルは、EIFVERSIONをターゲット・ワークスペースのリリース番号以下のリリースに設定して作成する必要があります。ターゲットのリリース番号を確認するには、EVERSIONを使用します。
IMPORTを使用すると、EIFNAMESおよびEIFTYPESオプションにも情報が格納されます。
構文
IMPORT import_item FROM EIF FILE file-id [INTO workspace] -
[MATCH [STATUS]|APPEND|REPLACE [DELETE]] [LIST [ONLY]] [DATA] -
[DFNS] [UPDATE] [NOPROP] [NASKIP] [NLS_CHARSET charset-exp] -
[API | NOAPI]
ここで、import_itemは次のいずれかです。
パラメータ
EIFファイルからアタッチされたアナリティック・ワークスペースにインポートされるワークスペース・オブジェクトの名前。このオブジェクトはまだワークスペースに存在していないので、オブジェクトに対する修飾オブジェクト名を指定できません。一度に複数の名前を指定できます。オブジェクトがインポートされる場所については、INTO workspace引数を参照してください。
AS newnameは、ディメンションを除く、インポートされるあらゆる型のオブジェクト名の変更に使用できます。
多次元のオブジェクトを別々の変数としてエクスポートした場合、すべての変数名を指定します。(EXPORT(EIF)のSCATTER ASキーワードを参照してください。)
(デフォルト)EIFファイルに含まれるすべてのオブジェクトをインポートすることを示します。オブジェクトがインポートされる場所については、INTO workspace引数を参照してください。
オブジェクトのインポート先となるアタッチされたアナリティック・ワークスペースの名前。指定されたワークスペースにオブジェクトが存在する場合、そのデータはインポートされるデータによって上書きされます。オブジェクトが存在しない場合、IMPORTは指定されたワークスペースにオブジェクトを作成します。他のアタッチされたワークスペースに同じ名前のオブジェクトが存在する場合は無視されます。
この引数を指定しない場合は、次のように処理されます。
インポートされるオブジェクトをアタッチされたワークスペースで事前定義していない場合、IMPORTは現行のワークスペースでそのオブジェクトを自動的に定義します。
いずれかのアタッチされたワークスペースにそのオブジェクトがすでに存在する場合、IMPORTはそこに含まれるデータをインポート・データによって上書きします。
インポートするファイルを指定します。file-idはファイルの名前を表すテキスト式です。名前はファイル識別子の標準形式である必要があります。
ターゲット・ワークスペースにすでに存在するディメンション値と一致するディメンション値に関連付けられているデータのみをIMPORTコマンドが転送することを示します。時間ディメンション以外のディメンションの場合、EIFファイルとターゲット・ワークスペースの対応するディメンション値を一致させるには、スペルおよび大/小文字の区別が同じであることを確認します(たとえば、Tents
はTENTS
と一致しません)。時間ディメンションの場合、Oracle OLAPは、ディメンション値の表示方法によってではなく、ディメンション値が表す日付によってディメンション値を識別します。したがって、EIFファイルとワークスペースの時間ディメンション値が同じ期間を表す場合、両方の時間ディメンション値は自動的に一致します。MATCH STATUSを指定した場合、IMPORTはそのディメンションの現行のステータスに含まれる値に関連付けられているデータのみをインポートします。ディメンションがターゲット・ワークスペースで制限されている場合、Oracle OLAPはステータスから除外されている値に関連付けられているEIFファイルのデータを無視します。
(デフォルト)ディメンション値がターゲット・ワークスペースにすでに存在するディメンション値と一致するかどうかにかかわらず、関連付けられているデータとともにすべてのディメンション値をIMPORTコマンドが転送することを示します。APPENDは、既存のディメンション値と一致しないディメンション値を追加し、新しい値はディメンション値のリストの最後に追加されます。時間ディメンションの場合、ターゲット・ワークスペースのディメンション値と新しいディメンション値の間に差があれば、APPENDはそれを埋めるためのディメンション値の追加も行います。
ワークスペースですでに定義されているオブジェクトに対して、IMPORTがEIFファイルのディメンション値と一致する既存のディメンション値を保持することを示します。EIFファイルのディメンション値と一致しないディメンション値(およびそのデータ)は削除されます。EIFファイルに関連付けられているデータの変数が含まれる場合、IMPORTは、新しいディメンションの一部として保持されるディメンション値の関連付けられているデータを置き換えます。テキスト・ディメンションの場合、EIFファイルのディメンション値の順序も変更されます。
REPLACE DELETEを指定した場合、マッチングは行われません。ディメンションをインポートする前に、Oracle OLAPはMAINTAIN DELETE ALLを実行しますが、これによって既存ディメンションに関連付けられているすべてのデータがディメンション値がとともに廃棄されます。
重要: REPLACEキーワードを使用する場合は注意が必要です。ディメンションの値を置き換えると、そのディメンションによってディメンション化されているターゲット・ワークスペースのすべての変数およびリレーションが影響を受けます。変数またはリレーションを同時にインポートするのではない場合に、そのディメンションのうちの1つで値を置き換えると、結果としてデータが失われることがあります。 |
定義のリストを生成します。ディメンションの場合、ターゲット・ワークスペースにインポートされるときの、各ディメンションの値の数が出力に示されます。コンポジットの場合、ディメンション値の組合せの数が示されます。さらに、2分ごとおよびインポート処理後には常に、読取りバイト数および経過時間もIMPORTによって示されます。
デフォルト以外の索引タイプを使用する結合またはコンポジットを定義した場合、IMPORT LISTコマンドはその索引タイプを表示します。デフォルトの索引タイプ(結合用のHASH、コンポジット用のBTREE)を使用する場合、その情報は表示されません。
EXPORT(EIF)は現行の出力ファイルにリストを送信します。LIST ONLYを指定した場合、実際のインポートは行われずにリスト表示のみが行われます。
Oracle OLAPが、実際のインポートを行わずにEIFNAMESおよびEIFTYPESオプションに正しい値を配置します。ただし、オブジェクト定義の完全なリストは生成されません。そのリストを生成するには、ONLYキーワードの前にLISTキーワードを指定します。
ターゲット・ワークスペースにすでに存在するオブジェクトに対して、IMPORTがそのオブジェクトに関連付けられているデータのみを更新することを示します。すでに存在する計算式に対して、IMPORTはそのEQ式を更新します。IMPORTがターゲット・ワークスペースに作成するオブジェクトは、完全な定義および関連付けられているデータとともに作成されます。DATAとDFNSの両方を指定できますが、どちらも指定しない場合のデフォルトはDATAです。
ターゲット・ワークスペースにすでに存在するオブジェクトに対して、IMPORTが定義を更新するのみで、データは変更しないままにすることを示します。IMPORT DFNSによって影響を受ける定義のコンポーネントは、LDコマンド、VNFおよびPROPERTYです。IMPORTがターゲット・ワークスペースに作成するオブジェクトは、そこでもデータを受け取ります。DATAとDFNSの両方を指定できますが、どちらも指定しない場合のデフォルトはDATAです。
IMPORTが各オブジェクトをインポートした後にUPDATE文を実行することを示しますが、これは、Oracle OLAPでメモリー不足が発生するような大きなEIFファイルのインポートに有効な場合があります。更新の頻度を制御するには、EIFUPDBYTESオプションを使用します。
各オブジェクトに割り当てたプロパティをEIFファイルから読み取りません。
NA
データのみを含むコンポジット・タプル(索引)をターゲット・ワークスペースにインポートしないことを指定します。この引数はすでにワークスペースに存在するタプルには影響を与えません。
file-idによって指定されるファイルからテキスト・データをインポートする際にOracle OLAPが使用するキャラクタ・セットを指定します。通常、EIFファイルにはそのキャラクタ・セットの独自指定が含まれているので、この引数は必要ありません。ただし、EIFファイルで不適切なキャラクタ・セットが指定されている場合、またはキャラクタ・セットの指定が不明である場合は、この引数を使用してキャラクタ・セットを正しく指定する必要があります。
指定可能なキャラクタ・セットについては、『Oracle Databaseグローバリゼーション・サポート・ガイド』を参照してください。
この引数は最後に指定する必要があります。この引数が省略されていて、Oracle OLAPがEIFファイルからキャラクタ・セットを決定できない場合、Oracle OLAPは、NLS_LANGオプションに記録されているデータベース・キャラクタ・セットを使用してデータをインポートします。
(デフォルト)EIFファイルがAPIキーワードを使用したEXPORT(EIF)コマンドで作成された場合、指定した項目に対して定義されているキューブのメタデータをインポートします。
注意: このようなインポートの実行後には、UPDATEおよびCOMMITが自動的に実行されます。 |
EIFファイルがAPIキーワードを使用したEXPORT(EIF)コマンドで作成された場合でも、指定した項目に対して定義されているキューブのメタデータをインポートしません。このキーワードを指定すると、Oracle OLAPでは、IMPORTコマンドの実行後にUPDATEおよびCOMMITは自動的に実行されません。
使用上の注意
別々のIMPORT文
MATCH、APPEND、REPLACE、DATAおよびDFNS引数を指定すると、インポートするために指定したすべてのオブジェクトに影響を与えます。それぞれのオブジェクトを異なる方法で処理するには、IMPORT文を個別に使用します。
非表示のプログラムのインポートとエクスポート
リレーションのインポート
リレーションをインポートする場合、IMPORTは関連ディメンションの定義および値も転送します。
連結ディメンションのインポート
連結ディメンションをアナリティック・ワークスペースにインポートするときに、連結ディメンションはすでにアナリティック・ワークスペースに存在するが、そのコンポーネントのディメンションは存在しない場合、Oracle OLAPは連結ディメンション、コンポーネントのディメンションおよびすべてのディメンションの定義をインポートします。
アナリティック・ワークスペースに存在していない連結ディメンションをインポートするときに、そのコンポーネントのディメンションの1つ以上がすでにアナリティック・ワークスペースに存在する場合、Oracle OLAPは連結ディメンション、新しいコンポーネントのディメンションおよびそれらの定義をインポートします。アナリティック・ワークスペースにすでに存在するコンポーネントのディメンションに対しては、他のディメンションの場合と同様に、IMPORT文にMATCH、APPEND、REPLACEの指定があればそれに従ってコンポーネントであるディメンションがインポートされます。
アナリティック・ワークスペースにすでに存在する連結ディメンションの名前および定義で連結ディメンションをインポートする場合、Oracle OLAPは他のディメンションの場合と同様に連結ディメンションをインポートします。
アナリティック・ワークスペースにすでに存在する連結ディメンションと同じ名前で連結ディメンションをインポートするときに、インポートされる連結ディメンションの定義が既存の連結ディメンションの定義と異なる場合、既存の連結ディメンションの定義は変更されず、既存の連結ディメンションのコンポーネントのディメンションの定義も変更されません。既存の連結ディメンションのコンポーネントのディメンションでもある、インポートされる連結ディメンションのコンポーネントのディメンションのみがインポートされます。インポートされる連結ディメンションが既存の連結ディメンションとコンポーネントのディメンションを共有しない場合、エラー条件が発生します。連結ディメンションによってディメンション化されているオブジェクトをインポートする場合、Oracle OLAPはインポートされるディメンションの値に対応するオブジェクトの値のみをインポートします。
ディメンション・サロゲートのインポートとエクスポート
ディメンション・サロゲートをExpress Interchange File(EIF)にインポートまたはEIFからエクスポートできます。この操作で、ディメンション・サロゲートは、サロゲートのディメンションによってディメンション化される変数のように動作します。EXPORT操作では、サロゲートが定義されているディメンションもエクスポートされます。IMPORT操作では、サロゲートが定義されているディメンションがインポートされますが、MATCH、STATUS、DATA、DFNS、APPENDおよびREPLACEキーワードを使用して、どの値をインポートするかを決定できます。
ディメンション・サロゲートをインポートすると、サロゲートの基になるディメンションの定義および値もインポートされます。同じ定義のディメンションが現行アナリティック・ワークスペースにすでに存在する場合、MATCH、APPEND、REPLACE、DATA、DFNSなどのIMPORTのキーワードのサロゲートに対する効力は、ディメンションによってディメンション化される変数のサロゲートの場合と同じです。インポートされるサロゲートの名前および定義が現行アナリティック・ワークスペースの既存のディメンション・サロゲートと同じ場合、およびインポートされるサロゲートに既存のサロゲートと同じ値がある場合、エラー条件が発生します。
同じ名前のオブジェクトが現行アナリティック・ワークスペースに存在しない場合、またはDFNSキーワードを使用する場合、INTEGERディメンション・サロゲートをインポートできます。INTEGERディメンション・サロゲートをインポートすると、インポートされるサロゲート・ディメンションの暗黙的なインポートによって既存のディメンションの値が変更される場合に、既存のINTEGERディメンション・サロゲートに影響を与えます。
APPENDとREPLACE
ターゲット・ワークスペースにすでに存在するINTEGERディメンションをインポートする場合、次の点に注意してください。
インポートされるINTEGERディメンションが既存のINTEGERディメンションより大きい場合、APPENDとREPLACEの効力は同じです。ディメンションの値の数は、大きい方のインポートされるディメンションの値の数になります。
インポートされるINTEGERディメンションのほうが小さい場合、REPLACEはディメンションの最後から該当するディメンション値を関連付けられているデータとともに削除しますが、APPENDは既存のディメンション値をそのまま残します。
INTEGERとSHORTINTEGERのデータ型
IMPORTコマンドは、INTEGERとSHORTINTEGERの間でデータ型を変換します。この2つのデータ型のうちの一方を持つ変数をEIFファイルからインポートするときに、その変数がすでにワークスペースに他方の型で存在する場合、Oracle OLAPはデータを自動的に変換します。SHORTINTEGERの最大値は32,767
、最小値は-32,767
です。この制限を超えるINTEGER値をSHORTINTEGER変数にインポートすると、結果はNA
です。
TEXTとIDのデータ型
インポートするEIFファイルに、TEXTディメンション、変数、リレーションまたは値セットにインポートするIDデータが含まれる場合、Oracle OLAPはインポート処理時にIDデータをテキストに自動的に変換します。
既存のプログラムとモデル
ワークスペースにすでに存在するプログラムまたはモデルをインポートする場合、DFNSを指定する必要があります。プログラムまたはモデルは定義のみで、データを持ちません。デフォルトのオプションDATAは、すでに存在するソース・コードをインポートしません。
プログラムを定義する場合、プログラムがファンクションとしてコールされるときに使用されるデータ型またはディメンション名を指定できます。データ型を指定すると、戻り値のデータ型が決定されます。ディメンション名を指定すると、戻り値はそのディメンションの単一の値です。既存のプログラムをインポートする場合、インポートされるプログラム定義のデータ型またはディメンションは既存のプログラム定義と一致する必要があります。一致しない場合は、エラー・メッセージが生成されます。
PERMIT文
オブジェクトに関連付けられたPERMIT文は、オブジェクト定義とともにインポートされます。このコマンドは、そのオブジェクトを引数にしてDESCRIBEコマンドを使用すると参照できます。ただし、オブジェクトがインポートされるときに権限条件は評価されません。
同じ名前のオブジェクトがターゲット・ワークスペースにすでに存在する場合に、DFNSキーワードを指定すると、オブジェクトのPERMIT文は更新されます。ただし、新しいアクセス権を有効にするには、PERMITRESETを実行する必要があります。同じ名前のオブジェクトがターゲット・ワークスペースにすでに存在する場合に、DFNSキーワードを指定しないと、オブジェクトのPERMIT文は更新されません。ターゲット・ワークスペースに既存のオブジェクトがない場合には、インポート時にDFNSキーワードを指定するかどうかにかかわらず、オブジェクトのPERMITコマンドは更新されますが、新しいアクセス権を有効にするためにPERMITRESETを実行する必要があります。(PERMITコマンドを参照してください。)
ワークスペース全体をエクスポートおよびインポートし、続いてそのワークスペースを更新、デタッチおよび再アタッチする場合、Oracle OLAPはエクスポート前に有効だったすべてのアクセス権をターゲット・ワークスペースでも有効にします。
ワークスペース・サイズの削減
EXPORT文とともにIMPORTを使用すると、ワークスペース全体を即座に稠密にできます。これを行うには、最初にワークスペースをエクスポートし、次にそれを別の名前でインポートします。古いワークスペースを削除し、新しいワークスペースを元の名前に変更します。
結合型の維持
HASH、BTREEまたはNOHASH結合ディメンションをEIFファイルにエクスポートする場合、EIFファイルにはその定義とともに結合型がエクスポートされます。その結合ディメンションをアナリティック・ワークスペースにインポートすると、新しいディメンションまたはその結合型をすでに使用しているディメンションにインポートしたときに、Oracle OLAPはその結合型を維持します。同じ結合型を使用しない既存のディメンションにそのディメンションをインポートしたときには、Oracle OLAPはEIFファイルに保存された元の結合型を維持しません。
EIFBYTES、EIFNAMESおよびEIFTYPES
EIFBYTESオプションを使用すると、最後にIMPORT(EIFファイル)文が実行されたときの読取りまたは書込みのバイト数がわかります。EIFNAMESオプションを使用すると、最後に実行したIMPORT文によってインポートされたすべてのオブジェクトの名前のリストを取得でき、EIFTYPESオプションを使用すると、そのリストにあるオブジェクトの型がわかります。
次の形式の文では、IMPORTは指定されたオブジェクトを実際にインポートせずに、オブジェクトに関する情報をEIFNAMESおよびEIFTYPESオプションに格納します。IMPORTは、IMPORTコマンドによって指定されるオブジェクト名のリストをEIFNAMESオプションに配置します。また、IMPORTは、EIFNAMESにリストされる各オブジェクト型のリストをEIFTYPESオプションに配置します。LISTキーワードを使用すると、オブジェクト定義の完全なリストを現行の出力ファイルに送信できます。
IMPORT name FROM EIF FILE file-id [LIST] ONLY
詳細は、EIFBYTES、EIFNAMESおよびEIFTYPESオプションを参照してください。
名前のないコンポジットのインポート
SPARSEキーワードを使用してディメンション・リストに変数または他のオブジェクトを定義した場合、Oracle OLAPはSPARSEディメンション・リストに対応する名前のないコンポジットを作成します。定義に名前のないコンポジットがあるオブジェクトをエクスポートまたはインポートすると、そのコンポジットはオブジェクトとともに自動的にエクスポートまたはインポートされます。名前のないコンポジットは通常のワークスペース・オブジェクトではないため、単独でのインポートやエクスポートはできません。
SEGWIDTHで指定された変数セグメント
CHGDFN文でSEGWIDTHキーワードを使用して変数セグメントの長さを指定した場合、セグメント情報は自動的にエクスポートおよびインポートされません。SEGWIDTH設定を維持するには、ワークスペース全体をエクスポートして新しく作成したワークスペースにワークスペース・オブジェクトのみをインポートし、セグメント設定を指定してから変数データを新しいワークスペースにインポートします。
TEXT値とNTEXT値のインポート
TEXT値およびNTEXT値はエクスポートやインポートが可能です。どちらのデータ型も単一のEIFファイルにエクスポートされます。
エクスポートされるTEXT値は、EXPORT(EIF)でファイルに指定されているキャラクタ・セットを使用してEIFファイルに格納されます。
エクスポートされるNTEXT値は、NTEXT(UTF8 Unicode)としてEIFファイルに格納されます。
TEXTオブジェクトにインポートされるNTEXT値は、データベース・キャラクタ・セットに変換されます。その結果、NTEXT値がデータベース・キャラクタ・セットで表せない場合にデータが失われることがあります。
NTEXTオブジェクトにインポートされるTEXT値は、NTEXT(UTF8 Unicode)キャラクタ・セットに変換されます。
例
例10-7 EIFファイルからのディメンションのインポート
この例は、2つの変数の内容およびディメンションを、カレント・ディレクトリ・オブジェクトにあるfinance.eif
という名前のディスク・ファイルから現行Oracle OLAPワークスペースにインポートする方法を示します。
IMPORT actual budget FROM EIF FILE 'finance.eif'
例10-8 連結ディメンションのインポート
この例は、現行アナリティック・ワークスペースにすでに存在する連結ディメンションとは異なる定義を持つ連結ディメンションのインポートの結果を示します。DESCRIBE文によって、現行アナリティック・ワークスペースのディメンションおよび変数の定義が次のように返されるとします。
DEFINE city TEXT DIMENSION DEFINE state TEXT DIMENSION DEFINE country TEXT DIMENSION DEFINE locality DIMENSION CONCAT (city, state) DEFINE geog DIMENSION CONCAT (locality, country) DEFINE sales INTEGER VARIABLE <geog>
次の文は、sales
データをレポートします。
REPORT sales
この文によって生成される結果は、次のとおりです。
GEOG SALES ------------------- ----- <city: Boston> 1000 <city: Springfield> 2000 <state: Ma> 3000 <country: Usa> 4000
DESCRIBE文によって、diffconcat.eif
ファイルのディメンションおよび変数の定義が次のように返されます。
DEFINE CITY TEXT DIMENSION DEFINE REGION TEXT DIMENSION DEFINE COUNTRY TEXT DIMENSION DEFINE GEOG DIMENSION CONCAT (CITY, REGION, COUNTRY) DEFINE SALES INTEGER VARIABLE <GEOG>
次の文は、diffconcat.eif
ファイルにある連結ディメンションのエクスポート元であるアナリティック・ワークスペースのディメンション値のsales
データをレポートします。
REPORT sales
この文によって生成される結果は、次のとおりです。
GEOG SALES ------------------ ----- <city: Boston> 1111 <city: Worcester> 2222 <region: East> 3333 <country: Usa> 4444
次の文は、diffconcat.eif
ファイルからsales
変数をインポートし、連結ディメンションgeog
を暗黙的にインポートします。APPENDキーワードによって、Oracle OLAPは値Worcester
をcity
ディメンションに追加します。その後、<city: Boston>
、<city: Worcester>
および<country: Usa>
に一致するsales
の新しい値がインポートされます。
IMPORT sales FROM EIF FILE diffconcat.eif APPEND
インポート操作の後、SALESの値をレポートすると次の結果が返されます。
GEOG SALES ------------------- ----- <city: Boston> 1111 <city: Springfield> 2000 <city: Worcester> 2222 <state: Ma> 3000 <country: Usa> 4444
IMPORT(テキストから)コマンドを使用すると、テキスト・ファイルからOracle OLAP Worksheetオブジェクトにデータをコピーできます。ワークシートの各行は、テキスト・ファイルの行と同じです。
IMPORTは、一般に、他のソフトウェア製品からアナリティック・ワークスペースにテキスト・ファイルをコピーするために使用されます。
通常、テキスト・ファイルの場合、IMPORTではなくFILEREAD文を使用します。FILEREADはより効率的で、ワークシート・オブジェクトを必要とせず、各列のデータを別々に処理する必要もありません。
構文
IMPORT worksheetname FROM [TEXT|STRUCTURED|RULED [RULER ruler-exp] -
PRN FILE file-id [STOPAFTER n] [TEXTSTART schar] [TEXTEND echar] -
[DELIMITER dchar] [NLS_CHARSET charset-exp]
パラメータ
Oracle OLAP Worksheetオブジェクトの名前を指定するテキスト式。ワークスペースでworksheetnameを事前定義していない場合、IMPORTがデフォルト・ディメンションWKSCOL
およびWKSROW
を使用して自動的にそれを定義します。worksheetnameの前の内容は上書きされます。1つのIMPORT文で、1つのテキスト・ファイルからインポートできるworksheetnameは1つのみです。
Oracle OLAP Worksheetをテキスト・ファイルからインポートすることを示します。
ソース・ファイルをそのまま行単位でOracle OLAP Worksheetにインポートします。ソース・ファイルは、単一の幅の広いワークシート列にTEXTのデータ型でコピーされます。その列は常にワークシートの列1です。ソース・ファイルの各行は、その最初の列の、ソース・ファイルと同じ数の個別の行の各セルにインポートされます。ソース・ファイルの空白行は、ワークシートの最初の列の対応する行でゼロ文字(NULL)のTEXT値になります。(TEXTがデフォルトです。)
ソース・ファイルをセル単位でターゲット・ワークシートにインポートし、自動的に次の3つの機能を果します。
ソース・ファイルの文字の各行を、ターゲット・ワークシートの単一行にコピーします。
ソース・ファイルの行の文字の各グループを、ターゲット・ワークシートの同じ行の別々のTEXTセルにコピーします。文字グループは、連続する数列(小数点がついた場合には分離しているとはしない)、および二重引用符で囲まれた文字という2つの条件で定義されます。そのため、3桁を区切るカンマを含む数列は、最初にカンマを削除しないかぎり別々のセルに分割されます。
二重引用符で囲まれない数字以外の文字は無視されますが、数字の直前のマイナス記号のみは数字とともに同じTEXTセルにコピーされます。(ソース・ファイルでマイナス記号と数字の間に空白がないことを確認してください。)
ソース・ファイルの空白行は、対応するワークシートの行の最初のセルでNA
になります。
ファイル形式が前述のパターンに従わない場合、TEXTSTART、TEXTENDおよびDELIMITERキーワードを使用します。これらの引数によって、各フィールドの先頭および末尾を識別するためにIMPORTが使用するデリミタをカスタマイズできます。
ソース・ファイルを様々なデータ型のワークシート・セルに対して列単位でインポートします。ソース・ファイルのすべての行が、長さも含めてファイルの他のすべての行と同じパターンのデータである必要があります。このデータ・パターンは、Oracle OLAPに対してRULERキーワードを使用して1行のruler-expで記述します。IMPORTはソース・ファイルの各行をループ処理し、その内容をターゲット・ワークシートの行のパターンが同じセルに1行ずつコピーします。ruler-expはソース・ファイルの後続の行をループ処理し、同じパターンのセルからなる複数の列が1行としてターゲット・ワークシートに縦に並べられていきます。20 rows processed
から始まるステータス・メッセージが、20行ごとに現行の出力ファイルに送信されます。
文字グループのパターンがそれぞれ異なるレコードがソース・ファイルに含まれる場合、データをインポートするには、それほど厳密さを求められないオプションであるSTRUCTUREDまたはTEXTを使用します。
ソース・ファイルのレコード・パターンにおけるデータ型、長さおよび各文字グループの繰返し数を指定するために、RULEDキーワードのみとともに使用します。Ruler-expは文字グループ指定のリストです。各文字グループ指定は、カンマ(,
)、バックスラッシュN(\n
)または空白(
)によって区切る必要があります。ソース・ファイルの基本となるレコード・パターン(行パターン)に、すべての文字を明らかにするほど多くの指定を含める必要はなく、RULERは、現行レコードの末尾までの距離にかかわらず、各行で指定がなくなるとすぐに次のレコードに進みます。リテラル・テキストは一重引用符で囲んでください。
文字グループの指定は、TEXTのT
、数値(INTEGERまたはDECIMAL)のA
、およびスキップまたは無視のS
の3タイプあります。これらのタイプの形式を、表10-1「IMPORTに対するテキストの文字グループの指定」に示します。
表10-1 IMPORTに対するテキストの文字グループの指定
書式 | 説明 |
---|---|
[mm] |
Oracle OLAPがそれぞれnn文字(バイト)のmm個のグループ(デフォルトは1)をTEXTとしてコピーすることを指定します。0文字グループを指定すると、ワークシートの対応する位置で空のセルになります。各グループは最大498文字です。後続の空白は削除されます。 |
[mm] |
Oracle OLAPがnn文字(バイト)のmm個のグループ(デフォルトは ピリオド(小数点)の前の数値に埋め込まれたカンマは無視されます。そのため、カンマによってのみ区切られる複数の数字、または1つのピリオドによってのみ区切られる2つの数字は、単一の数値の一部として扱われます(これらの数字を分離して扱うには、ソース・ファイルで間に空白を挿入します)。先頭のドル記号( 1つのハイフンまたはハイフンと空白が先頭にある数値、およびカッコで囲まれた数値は負数として扱われます。 |
[ |
Oracle OLAPがnn文字(バイト)のmm個のグループをスキップまたは無視することを指定します。nnの制限は32,767です。(mmを使用するのは、通常、非常に長いレコードを処理するためにこの制限を拡張する場合のみです。) |
インポートするファイルを指定します。file-idはファイルの名前を表すテキスト式です。名前はファイル識別子の標準形式である必要があります。
n個以下のレコードがファイルから読み取られることを指定します。STOPAFTERを省略すると、ファイル全体が読み取られます。
schar引数は、構造化ファイルでOracle OLAPがテキスト・フィールドの先頭として解釈する単一文字を指定するテキスト式です。デフォルト文字は二重引用符("
)です。
echar引数は、構造化ファイルでOracle OLAPがテキスト・フィールドの末尾として解釈する単一文字を指定するテキスト式です。デフォルト文字は二重引用符("
)です。
dchar引数は、構造化ファイルでOracle OLAPが標準フィールド・デリミタとして解釈する単一文字を指定するテキスト式です。Oracle OLAPは、標準フィールド・デリミタを使用して数値フィールドおよびテキスト・フィールドを識別します。デフォルト文字はカンマ(,
)です。
file-idによって指定されるファイルからテキスト・データをインポートする際にOracle OLAPが使用するキャラクタ・セットを指定しますが、これによって、Oracle OLAPはデータをそのキャラクタ・セットから正確に変換できます。この引数は最後に指定する必要があります。この引数が省略されていて、Oracle OLAPがファイル自体からキャラクタ・セットを決定できない場合、Oracle OLAPは、NLS_LANGオプションに記録されているデータベース・キャラクタ・セットを使用してデータをインポートします。
使用上の注意
WKSROWディメンションとWKSCOLディメンション
Oracle OLAP WorksheetオブジェクトのWKSROW
(デフォルトのワークシート行)ディメンションは、テキスト・ファイルの行に対応します。ワークシートのWKSCOL
(デフォルトのワークシート列)ディメンションは、ソース・ファイルの各行に複数のデータ型がある場合に、ワークシートの各行を複数のセルに分割してデータ型を分けるために使用します。WKSROW
およびWKSCOL
は、1
、2
、3
などの値を持つINTEGERディメンションです。
最小ワークシート・サイズ
すべてのセルが使用されるかどうかにかかわらず、Oracle OLAPは縦横63セルの最小サイズのワークシートを設定します。ソース・テキスト・ファイルがこの最小サイズより大きなOracle OLAP Worksheetを必要とする場合、IMPORTは必要に応じて自動的にWKSCOL
およびWKSROW
のディメンション値を増やします。
数値のインポート
テキスト・ファイルから数値をインポートする場合、IMPORTはINTEGERデータ型を与えます。
他のコンピュータへのファイル転送
別のコンピュータで作成したファイルをインポートする場合、キャラクタ・セットが適切であることを確認してください。テキスト・ファイルを別のコンピュータに転送する場合、転送を処理する通信プログラムが必要な文字変換(たとえば、ASCIIからEBCDICへの変換)を行います。結果のファイルを受け取るコンピュータに対して正しいキャラクタ・セットになるように、転送プログラムのパラメータを設定します。
例
例10-9 RULERキーワードを使用しない列のインポート
カレント・ディレクトリにabctxt
という名前のファイルがあるとします。そのファイルには、5桁のINTEGER
値のグループが10個と20文字のテキストのグループが1個あります。このファイルをsheet1
という名前のOracle OLAP Worksheetにインポートするには、次の文を使用します。
IMPORT sheet1 FROM RULED PRN FILE 'abctxt' ruler '10a5, t20'
ファイル名の実際の形式は、オペレーティング・システムの規則に従う必要があります。
例10-10 RULERキーワードを使用する列のインポート
mix
という名前のファイルには、行デリミタがなく、それぞれ100文字を含むレコードがあるとします。各レコードの文字配分は、次の表に示すとおりです。
文字 | 内容 |
---|---|
1 - 10 | 無視 |
11 - 17 | 10進数 |
18 - 28 | 無視 |
29 - 30 | 2つの単一文字コード |
31 - 35 | 整数 |
36 - 100 | 無視 |
このファイルをsheet2
という名前のOracle OLAP Worksheetにインポートするには、次の文を使用します。
DEFINE sheet2 WORKSHEET temp IMPORT sheet2 FROM RULED PRN FILE 'mix' RULER - 's10, a7, s11, 2t1, a5'
IMPORT(スプレッドシートから)コマンドを使用すると、スプレッドシート・ファイルからOracle OLAP Worksheetオブジェクトにデータ(計算式ではない)をコピーできます。ワークシートのディメンションは、スプレッドシートの列および行と同じです。IMPORTは、常にスプレッドシート・ファイル全体を一度にコピーします。
IMPORTは、一般に、他のソフトウェア製品(たとえばLotusスプレッドシート)からOracle OLAPワークスペースにデータをコピーするために使用されます。
構文
IMPORT worksheetname FROM source [INTO workspace]
ここで、sourceは次のいずれかです。
パラメータ
Oracle OLAP Worksheetオブジェクト。1つのIMPORT文で、1つのスプレッドシート・ファイルからインポートできるworksheetnameは1つのみです。ワークシートに修飾オブジェクト名を指定できますが、INTO worksheet引数を指定する場合、指定するターゲット・ワークスペースは同一である必要があります。ワークシート・オブジェクトがインポートされる場所については、INTO workspace引数を参照してください。
Oracle OLAP Worksheetを1-2-3ファイルのバージョン1(WKS
)またはバージョン2(WK1
)、Symphonyファイルのバージョン1.0(WRK
)またはバージョン1.1(WR1
)、あるいはデータ交換フォーマット・ファイル(DIF
)にインポートすることを示します。
Oracle OLAPは、DIF
ファイルのE形式(指数表現)の数値を認識しません。
データのインポート先となるアタッチされたアナリティック・ワークスペースの名前。指定されたワークスペースにworksheetnameが存在する場合、そのデータはインポートされるデータによって上書きされます。worksheetnameが存在しない場合、IMPORTは指定されたワークスペースにそれを作成します。他のアタッチされたワークスペースに同じ名前のワークシートが存在する場合は無視されます。
この引数を指定しない場合は、次のように処理されます。
アタッチされたワークスペースでworksheetnameを事前定義していない場合、IMPORTがデフォルト・ディメンションWKSCOL
およびWKSROWを使用して、現行のワークスペースに自動的に定義します。
いずれかのアタッチされたワークスペースにworksheetnameがすでに存在する場合、IMPORTはそこに含まれるデータをインポートされるデータによって上書きします。
インポートするファイルを指定します。file-id引数はファイルの名前を表すテキスト式です。名前はファイル識別子の標準形式である必要があります。
file-idによって指定されるファイルからテキスト・データをインポートする際にOracle OLAPが使用するキャラクタ・セットを指定しますが、これによって、Oracle OLAPはデータをそのキャラクタ・セットから正確に変換できます。この引数は最後に指定する必要があります。この引数が省略されていて、Oracle OLAPがワークシート自体からキャラクタ・セットを決定できない場合、Oracle OLAPは、NLS_LANGオプションに記録されているデータベース・キャラクタ・セットを使用してデータをインポートします。
注意: NTEXTデータ型は、ワークシートでサポートされていません。 |
ソース・ファイルからセル単位でインポートすることを示します。「CSVのインポート」を参照してください。
STOPAFTER nは、n個以下のレコードがファイルから読み取られることを指定します。STOPAFTERを省略すると、ファイル全体が読み取られます。
DELIMITER dcharは、Oracle OLAPが標準フィールド・デリミタとして解釈する単一の文字(dchar)を指定します。デフォルト値はカンマです。
使用上の注意
Oracle OLAP Worksheetオブジェクトのデフォルト・ディメンション
Oracle OLAP Worksheetのデフォルト・ディメンションは、スプレッドシートの列および行に対応するWKSCOL
およびWKSROWです。WKSCOL
およびWKSROWは、1、2、3などの値を持つINTEGERディメンションです。これらのディメンションがアタッチされたワークスペースにすでに存在するが、現行のワークスペースに存在しない場合、IMPORT文はこれらのディメンションを作成しようとする際に失敗します。この問題を回避するには、最初にワークシートを異なるディメンションで定義します。(詳細は、「ワークシート・ディメンション」を参照してください。)
必要に応じたセルの追加
ワークシートのディメンションによって定義されているより多くのセルがソース・スプレッドシートに含まれる場合、IMPORTは自動的にディメンション値を追加して必要数のセルを用意します。
空のセルとNAのセル
IMPORTは、ソース・ファイルをワークシートにセル単位でマージします。ソース・ファイルの空ではないセルは、NA
値である場合も含めて、ワークシートの対応するセルの内容を上書きしますが、ソース・ファイルの空のセルは、ワークシートを上書きせず、現行ワークシートの末尾を超えるソース・ファイルのセルはワークシートに追加されるので、データが廃棄されることはありません。
DIFファイルの数値
DIFファイルから数値をインポートする場合、IMPORTはDECIMALデータ型を与えます。
CSVのインポート
CSVのインポート・オプションは、ソース・ファイルからワークシートのセルにインポートする際に、自動的に次の機能を実行します。
ソース・ファイルの文字が含まれる各行を、ターゲット・ワークシートの単一行にコピーします。
ソース・ファイルの行にあるそれぞれの文字グループを、ターゲット・ワークシートの行の別々のTEXTセルにコピーします。グループはデリミタ文字で区切られます。
文字グループが二重引用符で囲まれている場合、次のように処理されます。
グループ内にあるデリミタ文字はリテラルとして扱われます。
グループ内に二重引用符が含まれる場合、その後にさらに二重引用符を付ける必要があります。
グループ内にある改行(\n
)は無視されます。
開始引用符の前および終了引用符の後にある空白またはタブは無視されます。