Eu tenho uma tabela de criação ext_file (....) tipo consulta oracle_loader que abre um arquivo de texto para extrair dados dele. Os parâmetros de acesso são:
records delimited by newline
fields terminated by '\t'
optionally enclosed by '\"'
ltrim
missing fields are null
O problema que acabei de notar é que um dos campos é altura e está armazenado no arquivo de texto como:
"5'6.35""
O uso de um campo fechado "dentro de um" sem escape está fazendo com que todos os registros com altura sejam expulsos.
Como posso dizer ao oracle_loader para aceitar esses valores (e eu realmente não me importo se o " entrar ou se o campo for reduzido para 5'6,35).
Eu tenho duas soluções, nenhuma das quais é ideal: 1. Use sed para escapar do " dentro de " como \" 2. Omita a linha opcionalmente delimitada por '\"', que quebrará as linhas nas quais o terminador de campo está dentro de um campo
A solução é mover a cláusula delimitada por em cada linha em vez de geral para a tabela. Por exemplo:
Agora, aquele campo incômodo de altura estará no banco de dados como "5'6.35"" (três aspas duplas). Você pode executar uma consulta na coluna para remover as aspas.