Oracleデータベースのインポートデータとエンコーディングの問題

 

コンフィギュレーション制御ファイル:

データを読み込む
キャラクタ・セットUTF8
テーブルrole_res_goldへの追記
によって終了フィールド" "
TRAILING NULLCOLS
F_USERNAME、
F_RES_TYPE、
F_INDEX、
F_NAME、
F_COUNT、
CONSTANT F_GAIN_TYPE   " AA "// 定数が一定の内容に沿っ置き換えるキーワード、ある 
、F_CONSUME_TYPE FILLERを// この列の値のFILLERキーワードがロードされていない 
RECORD_DATEの      日付を " YYYY HH24-MM-DD:miザ:SS " NULLIF (RECORD_DATE = " NULL " 

インポートコマンド

SQLLDRユーザーID =ユーザー名/ passwdの @sidコントロール= ctl.txtデータ= $ ファイルの直接= 

特記事項:

      ソースファイルのエンコーディングで構成制御ファイル:するCharacterSet UTF8

      あなたがデータベースにインポートした後、データベースのデフォルトのエンコーディングは、もはやソースファイルのエンコーディングではありません!  

 

Oracleのコードを参照してください。

選択 USERENV(言語をデュアルから)。

例えば:私のデータベースには、輸入量は、GBKになった後にフィールドをコーディング、簡体CHINESE_CHINA.ZHS16GBKです

 

ロード方法:

INSERT これがデフォルトの方法です。この方法は、そこには、表に記録されている場合、テーブルは、空になる前にデータがロードされていることを前提としていSQLLDR出口、およびレポート:SQLLDR-601:INSERTオプションの TABLE DEPT ON、TABLEは空である必要があり、ERROR

APPEND  このメソッドは、データベーステーブルに追加されるように記録を可能にし、既存のレコードには影響を与えません。

REPLACE   この方法は、最初のテーブル内の既存のレコードを削除し、新しいレコードのロードを開始。古いレコードが削除されたときに、テーブル上の任意のトリガーを削除することを注意がトリガされます

TRUNCATE   この方法は、はるかに高速REPLACEよりなるトリガーの起動に加えてと、ロールバックを作成していないため、古いレコードを削除するSQLコマンドTRUNCATEを使用してデータをロードする前にこのメソッドを。

おすすめ

転載: www.cnblogs.com/morgan363/p/12153402.html