arquivo de controle sqlldr e resumo detalhado da descrição do parâmetro

Comando de importação:

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

Descrição do parâmetro de comando de importação:

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

Arquivo de controle:

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",不从指定的数据文件中读取
) 

Explicação detalhada dos parâmetros relacionados ao arquivo de controle:

  1. CARREGAR DADOS: geralmente começa com isso, e os seguintes parâmetros podem ser adicionados antes dele:
  2. UNRECOVERABLE: indica que os dados não são recuperáveis
  3. RECUPERÁVEL: indica que os dados podem ser recuperados
  4. CONTINUE_LOAD: significa continuar a adicionar
  5. INFILE: indica a localização do arquivo de dados. Se o valor for *, significa que os dados estão no arquivo de controle. Neste exemplo, não há arquivo de dados separado. Para a maioria das cargas, o arquivo de dados é separado do arquivo de controle.
  6. INTO TABLE nome_tabela: nome_tabela é a tabela de destino para a qual os dados serão carregados.Esta tabela deve ter sido criada antes de executar o comando SQLLDR.
    Existem alguns parâmetros interessantes para explicar antes de INTO;
    INSERT: inserir dados na tabela, a tabela deve estar vazia, se a tabela não estiver vazia, um erro será reportado ao executar o comando SQLLDR, o padrão é o parâmetro INSERT.
    ANEXAR: acrescenta dados à tabela, independentemente de haver dados na tabela.
    REPLACE: substitui os dados da tabela, o que equivale a primeiro DELETE todos os dados da tabela e depois INSERT.
    TRUNCATE: Semelhante a REPLACE, exceto que o método DELETE não é usado para excluir os dados da tabela, mas o método TRUNCATE é usado para excluir e, em seguida, INSERT.
  7. FIELDS TERMINATED BY ",": defina o valor de separação da parte dos dados da string. Aqui, é definido como uma separação por vírgula (,). Claro, também pode ser substituído por quaisquer outros caracteres visíveis, desde que seja o separador na linha de dados.
    (ENAME, JOB, SAL): O nome da coluna da tabela a ser inserida. Deve-se observar que o nome da coluna deve ser exatamente igual ao nome da coluna da tabela. A ordem das colunas pode ser diferente da ordem das colunas na tabela, mas deve ser igual à coluna da parte dos dados. Correspondência de um para um.
  8. A palavra-chave position é usada para especificar as posições inicial e final da posição da coluna
    (m: n): refere-se ao valor da coluna do mésimo caractere ao enésimo caractere como a
    posição do valor da coluna ( +2: 15): o método de especificação direta do valor é chamado de absoluto Offset, se você usar um número, é um offset relativo, o que significa onde o campo anterior termina, desta vez ele começa, e você pode fazer o cálculo novamente com uma quantia relativamente barata.
    position (*) char (9): A vantagem deste deslocamento + tipo e comprimento relativo é que você só precisa especificar a posição inicial para a primeira coluna, e as outras colunas precisam apenas especificar o comprimento da coluna.
  9. FILLER: Especifique FILLER no arquivo de controle, indicando que o valor da coluna não é importado para a tabela.
  10. BEGINDATA: indica que o seguinte são os dados a serem carregados, válido apenas quando INFILE é especificado como *

Acho que você gosta

Origin blog.csdn.net/weixin_49192027/article/details/107173780
Recomendado
Clasificación