sqlldr制御ファイルとパラメーターの説明の詳細な要約

インポートコマンド:

sqlldr user/password control=test.ctl skip=1 load=200000 errors=100 rows=1000  bindsize=33554432

インポートコマンドパラメータの説明:

user/password  //数据库的用户名密码
control        //sqlldr控制文件位置
skip=1         //表示跳过第一行,从第二行开始导入
load=200000    //表示并不导入所有的数据,只导入跳过skip参数后的200000条数据
rows=1000     //表示一次加载的行数,默认值为64,此处设置为1000
errors=100    //表示出错100次后,停止加载
bindsize=33554432 //表示每次提交记录缓冲区的大小,默认256k

制御ファイル:

load data
CHARACTERSET 'UTF8'            //指定字符集
infile '/home/datafile/test.txt'     //指定数据文件绝对路径
append into table test_tab    //指定导入库表
fields terminated by ',' ,'optionally enclosed by '|'    //字段之间的分隔值为逗号,界定符号为"|"
(
ID,                      //从数据文件中读取的字段列
DATA_DT Date "yyyy-mm-dd" ,        //设置日期格式
IMPDATE "to_date('2020-07-03 20:10:37','yyyy-mm-dd hh24:mi:ss')", //插入固定日期格式的值
FLAG constant"open"                      //constant指定插入默认值"open",不从指定的数据文件中读取
) 

制御ファイル関連のパラメーターの詳細な説明:

  1. データのロード:通常はこれから開始し、その前に次のパラメーターを追加できます。
  2. UNRECOVERABLE:データが回復不能であることを示します
  3. RECOVERABLE:データを回復できることを示します
  4. CONTINUE_LOAD:追加を続けることを意味します
  5. INFILE:データファイルの場所を示します。値が*の場合、データが制御ファイル内にあることを意味します。この例では、個別のデータファイルはありません。ほとんどのロードでは、データファイルは制御ファイルから分離されています。
  6. INTO TABLE tbl_name:tbl_nameは、データがロードされるターゲットテーブルです。このテーブルは、SQLLDRコマンドを実行する前に作成されている必要があります。
    INTOの前に説明する非常に興味深いパラメータがいくつかあります
    。INSERT:テーブルにデータを挿入しますテーブルは空である必要があります。テーブルが空でない場合、SQLLDRコマンドの実行時にエラーが報告されます。デフォルトはINSERTパラメータです。
    APPEND:テーブルにデータがあるかどうかに関係なく、テーブルにデータを追加します。
    REPLACE:テーブル内のデータを置き換えます。これは、最初にテーブル内のすべてのデータをDELETEしてから、INSERTすることと同じです。
    TRUNCATE:REPLACEと似ていますが、テーブル内のデータを削除するためにDELETEメソッドが使用されない点が異なりますが、削除してからINSERTするためにTRUNCATEメソッドが使用されます。
  7. FIELDS TERMINATED BY "、":文字列のデータ部分の区切り値を設定します。ここでは、コンマ(、)区切りとして設定します。もちろん、データ行の区切り文字である限り、他の表示文字に置き換えることもできます。
    (ENAME、JOB、SAL):挿入するテーブルの列名。列名はテーブルの列名と完全に同じである必要があります。列の順序はテーブルの列の順序と異なる場合がありますが、データ部分の列と同じである必要があります。 1対1の対応。
  8. positionキーワードは、列
    position(m:n)の開始位置と終了位置を指定するために使用されます。m番目の文字からn番目の文字までの列値を列値
    position(+2:15)として参照します。値を直接指定する方法は絶対値と呼ばれます。オフセット。数値を使用する場合、これは相対オフセットです。つまり、前のフィールドが終了する場所、今回は開始する場所であり、比較的安価な金額で計算を再実行できます。
    position(*)char(9):この相対オフセット+タイプと長さの利点は、最初の列の開始位置を指定するだけでよく、他の列は列の長さを指定するだけでよいことです。
  9. FILLER:制御ファイルでFILLERを指定し、列の値がテーブルにインポートされないことを示します。
  10. BEGINDATA:以下がロードされるデータであることを示し、INFILEが*として指定されている場合にのみ有効です。

おすすめ

転載: blog.csdn.net/weixin_49192027/article/details/107173780