詳細ORACLE-SQLLOADのインポート外部データ

今日、企業はデータベースに外部のテキストから一部のデータをインポートする必要があります。ここの人々ローカル記録に関連する手順と注意を払う、学ぶために参照する必要性!ここでの環境は、Windows、Linux、または他のデータベースと同じ方法でデータベースです!

1.準備:あなたはすでに、関連するテーブルを持っている場合、インポートデータのテーブル構造の必要性を作成し、この手順を省略します!

SQL>表のテストを作成し
  2(
  3ホストVARCHAR2(30)、
  4 USER_NAME VARCHAR2(30)、
  VARCHAR2 IP_ADDRESS 5(15)、
  6パスVARCHAR2 'NO'(4)は、デフォルトではないヌル、
  7裁判官番号デフォルト0ないヌル、
  8 ENDTIME日付
  9)。

表が作成されました。

2、書き込みsqlloadインポート制御ファイルのデータ、制御ファイルは、ここでテストしたとして、そのファイルがTXTとして保存することができますコピーし、その試験によれば、関連する制御パラメータを追加する必要があるかもしれません!

LOAD DATA 
INFILE ' D:\ data.txtを' 
TABLEテストINTO 
TRUNCATEの
フィールドはにより終了' ' 
NULLCOLSを末尾
(HOST、USER_NAME、IP_ADDRESS、PASS、裁判官、終わりの時)

他にも、制御ファイルのパラメータは、自分のニーズに応じて、で、テストを調整します。

制御パラメータの取付部:公式文書の特定の使用が優先するもの

OPTIONS(SKIP = 1、行= 128     -コマンドオプションが表示SQLLDRは、この側にスキップ=書き込むことができる。1をスキップし、データの最初の行の
 LOAD DATA 
INFILE " users_data.csvを"       - 指定した外部データファイルは、データは、CSV等の異なる形式のファイルであってもよく、TXTサポートが書くことができ
                   、複数のINFILE
another_data_file.csvは複数のデータファイルを指定 TRUNCATE    - 場合は、可能性があるため、元のテーブルのレコードを消去するために切り捨てテーブルを用いて、操作の種類をテーブル内の元のデータは、明らかに必要とするかどうか INTOテーブルユーザーを    - レコードのテーブルを挿入する フィールドによって終了   -データ記録の各列と分離 OPTIONALLYで囲まれました' -各データ・フィールドフレーム、そのようなフィールドを持っている二重引用符セパレータ NULLCOLS末尾 -テーブルの対応するフィールドがNULL値であることが許可されていない場合 FILLER virtual_column、 -このPL /からスキップするために使用するダミーのフィールドであり、生成されたSQL Developerの最初の列の数は 数が、USER_ID -フィールドは、ログファイルの表示タイプまたはCHARACTERあるタイプを指定することもできる USER_NAME、 LOGIN_TIMES、 DATEをLAST_LOGIN " YYYY- DD-HH24 MM:MI:SS " -かなりのTO_DATE()関数の変換で、日付形式を受信するように指定 ------------------------- -------------------------------------------------- ------------------ INSERT -デフォルトモードでは、データはテーブルが空のロードが開始されたときに必要な APPENDを - テーブルに新しいレコードを追加し、 置き換え 、削除古いレコードを(削除で- から新たにロードされた記録に置き換え、表計算書) TRUNCATE -削除古いレコードを( )のtruncate table文で、新たに装着された記録で置き換えます

 

3、データテーブル構造と形式は正確に対応しなければならないことに注意をインポートするデータを作成し、またはインポートに失敗しました!次のようにテストデータは以下のとおりです。データフィールドの最後の部分を、末尾NULLCOLSパラメータを追加するには、制御ファイルの必要性空であります!

TTT、SCOTT、192.1681.111、はい、1 
QQ、JACK、192.1681.20、なし、1 
YY、TOM、192.1681.20、なし、1 
WEB1、HAHA、192.1681.1、なし、1 
XXX、ROBIN、111.111111.111、なし、108 -AUG- 08 
DB2、LUCY、192.16810.10、なし、1 
ORACLE、LILY、222.222222.222、なし、1 
WORKGROUP、DENNIS、133.133133.133、なし、008 -AUG- 08 
DCR、CANDY、192.168100.10、なし、1 
T3、FLY、192.16810.33、なし、1 
T1、LINDA、192.16810.200、なし、108 -AUG- 08 
T2、LILEI、192.168100.31、なし、108 -AUG- 08
あなたは、ファイルをインストールする必要があります

また、インポート制御パラメータに関連する - 4、インポートデータ

部分インポートパラメータを取り付ける:パラメータは、コマンドライン入力SQLLDRを表示することができ

C:\ DocumentsとSettings \ Administratorの> SQLLDR

SQL * Loaderの:リリース11.2.0.1.0 - 生産水曜日2013年2月27日の夜5時13分24秒

著作権(C)1982、2009、Oracleおよび/またはその関連会社。全著作権所有。

用法:SQLLDRキーワード=値[、キーワード=値、...]

有効なキーワード:

    ユーザーID - ORACLEユーザー名/パスワードの
   制御-制御ファイル名の
       ログ-ログファイル名の
       悪い-エラーファイルの
      データ-データファイル名の
   廃棄-ファイル名捨てる
DISCARDMAXは-ファイルの許容数(デフォルトすべてを破棄しました)
      スキップ-論理レコードの数(デフォルト0)スキップする
      負荷-論理レコードの数は、(すべてのデフォルト)ロードする
    エラーが-エラー数が許容(デフォルト50)
      の行-従来型パス・バインド配列データ記憶装置又はダイレクト・パス間のラインの数
               (デフォルト:従来型パス64、ダイレクト経路の全て)
  BINDSIZE - (バイト数)は、従来のパスのバインド配列のサイズ(デフォルト256000)
    操作隠れメッセージ中の( -サイレントフィードバック、エラー、廃棄物、パーティション)タイトル、
    ダイレクト-ダイレクトパス(デフォルトFALSE)を使用して、
   パラメータファイル- PARFILE:ファイルはパラメータ記述の名前が含まれ
  -パラレル・ロード(デフォルトFALSE)を実行するために平行に
      以下のオブジェクトから-ファイルをファイルアロケーションエリア
SKIP_UNUSABLE_INDEXES -無効化/役に立たない索引または索引パーティション(デフォルトFALSE)の使用を有効に
SKIP_INDEX_MAINTENANCE -インデックスのメンテナンスフリーを、インデックスは役に立たない(デフォルトFALSE)としてラベル影響を受けることになります

commit_discontinued -ロードされた割り込みロード送信ライン(デフォルトFALSE)
  READSIZE -リードバッファサイズ(デフォルト1048576)
EXTERNAL_TABLE -外部ローディングテーブルを使用して、NOT_USED、GENERATE_ONLY、EXECUTE(デフォルトNO
T_USED)
COLUMNARRAYROWS -行数ダイレクト・パス列配列(デフォルト5000)
STREAMSIZE - (バイト単位)ダイレクト・パス・ストリーム・バッファ・サイズ(デフォルト256000)
マルチスレッド-直接パスにマルチスレッド使用
 再開-電流を有効にするか無効にすることができますセッションを復元する(デフォルトFALSE)
RESUMABLE_NAME -回復可能なステートメントを識別するためにヘルプテキスト文字列
RESUMABLE_TIMEOUT - RESUMABLEの待機時間(秒)を(デフォルト7200)
DATE_CACHE - (エントリドル)日付変換キャッシュのサイズ(デフォルト1000)
吊荷(デフォルトFALSE)場合、インデックスエラー- no_index_errors

 

次のコマンド:コン​​トロール=パスは、制御ファイルおよびインポート・ログを指定します=ログが悪い=エラーデータ=データファイルをファイル

インポートを開始します。

C:\ DocumentsとSettings \ Administratorの>スコット/虎制御= D SQLLDR:\ sqlload.txtログ= D:\ loadlog.txt悪い= D:\ bad.txtデータ= D:\ data.txtを
SQL * Loaderの:リリース11.2.0.1.0 -星期三2月27日に生産夜05時06分52秒2013

著作権(C)1982、2009、Oracleおよび/またはその関連会社。全著作権所有。

コミット点に到達 - 12の論理レコード数を

成功したインポート後の結果を参照してください。

C:\ DocumentsとSettings \ Administratorの> SQLPLUSスコット/虎

SQL * Plusを:水曜日にリリース11.2.0.1.0生産2013年2月27日夜05時07分05秒

著作権(C)1982、2010、Oracleの。全著作権所有。

连接到:
Oracle Databaseの11グラムのEnterprise Editionリリース11.2.0.1.0 -生産
パーティション、OLAP、データマイニングとReal Application Testingのオプション付き

SQL>テストから選択*;

HOST USER_NAME IP_ADDRESS PASS JUDGE ENDTIME
---------- ---------- ------------------------ ------ -------- ---------- --------------
TTT SCOTT 192.168.1.111はい1
QQのJACK 192.168.1.20なし1
YY TOM 192.168.1.20なし1
WEB1 HAHA 192.168.1.1なし1
DB2 LUCY 192.168.10.10なし1
ORACLE LILY 222.222.222.222なし1
DCR CANDY 192.168.100.10なし1
T3 FLY 192.168.10.33なし1

8選択された行。

結果は、最後のデータフィールドが無い輸入の値を持つ、データファイルと明らかに矛盾しています!これは、最終的に望ましい結果ではありません!確認データは、ターゲットと制御ファイルには問題を示さないテーブルをインポートされていることに!

これは、質問形式のデータファイルでなければなりません!データファイルの最終フィールドが日付データ型であることに注意してください。ビュー既存の日付は、データベース・ファイル・タイプではありませんデータ表現形式をサポートしていません。

SQL> を選択 SYSDATE からデュアル; 

SYSDATE
 --------------
 27 - 1月- 13

明らかに我々の日付と一貫性のないデータファイルが表示され、データが同じ形式にデータファイルとデータベースのフィールドを最後にすることができ、それはまた、データベースの形式や言語を変更することができ、中国、

このテスト・システムであるため、LinuxでWindowsのエラーが表示さを回避することができます!

Linuxは、解決するには、次の手順を試すことができた場合:

ALTER SYSTEMセットNLS_DATE_FORMAT = 'DD-MON-RR'。

ALTER SYSTEMセットNLS_LANGUAGE =アメリカンスコープ= SPFILE; ------------データベース再起動し得

ここで窓あるので、ここで言語を変更し、次のように変更されたデータファイルに変更を加えるために、直接データベース、データファイルを再起動しません

 

TTT、SCOTT、192.1681.111、はい、1 
QQ、JACK、192.1681.20、なし、1 
YY、TOM、192.1681.20、なし、1 
WEB1、HAHA、192.1681.1、なし、1 
XXX、ROBIN、111.111111.111、なし、108 - 5月- 08 
DB2、LUCY、192.16810.10、なし、1 
ORACLE、LILY、222.222222.222,no,1,
WORKGROUP,DENNIS,133.133.133.133,no,0,08-5月 -08
DCR,CANDY,192.168.100.10,no,1,
T3,FLY,192.168.10.33,no,1,
T1,LINDA,192.168.10.200,no,1,08-5月 -08
T2,LILEI,192.168.100.31,no,1,08-5月 -08

インポートビューの結果の後に、再び輸入

 

C:\ DocumentsとSettings \ Administratorの>スコット/虎制御= D SQLLDR:\ sqlload.txtログ= D:\ loadlog.txt悪い= D:\ bad.txtデータ= D:\ data.txtを

SQL * Loaderの:リリース11.2.0.1.0 - 生産水曜日2013年2月27日の17時48分44秒

著作権(C)1982、2009、Oracleおよび/またはその関連会社。全著作権所有。

コミット点に到達 - 12の論理レコード数を

 

C:\ DocumentsとSettings \ Administratorの> SQLPLUSスコット/虎

SQL * Plusは:リリース11.2.0.1.0生産水曜日2013年2月27日午前17時49分21秒で

著作権(C)1982、2010、Oracleの。全著作権所有。


连接到:
Oracle Databaseの11グラムのEnterprise Editionリリース11.2.0.1.0 -生産
パーティション、OLAP、データマイニングとReal Application Testingのオプション付き

A10のためのSQL>コルホスト
A15のためのSQL>コルUSER_NAME
SQL>テストから選択*;

HOST USER_NAME IP_ADDRESS PASS JUDGE ENDTIME
---------- --------------- ------------------- ----------- -------- ---------- --------------
TTT SCOTT 192.168.1.111はい1
QQ JACK 192.168.1.20いいえ1
YY TOM 192.168.1.20いいえ1
WEB1 HAHA 192.168.1.1ない1
XXXロビンない111.111.111.111ない1 08- 5月-08
DB2 LUCY 192.168.10.10ない1
ORACLE       LILY            222.222.222.222                      no                1
WORKGROUP  DENNIS          133.133.133.133                 no                0 08-5月 -08
DCR            CANDY           192.168.100.10                     no                1
T3              FLY             192.168.10.33                         no                1
T1             LINDA           192.168.10.200                       no                1 08-5月 -08
T2             LILEI           192.168.100.31                         no                1 08-5月 -08

私たちは、12行を選択しました。

正常に戻っ:データとデータファイルとまったく同じ!この全体のデータのインポートは完了です!主な関心は、データファイルの確立で、別々のテーブルが対応だけでなく、構造を確認する場合は!

おすすめ

転載: www.cnblogs.com/vmsysjack/p/12158687.html