- Este tópico contém 8 respostas, 2 vozes e foi atualizado pela última vez 17 anos atrás por
vieri.
-
AutorPosts
-
6 de março de 2009 às 6:59 pm #85642
vieri
ParticipanteSQL *LOADER
Caros estou criando(testes) uma carga no Loader com a seguinte codificação.
chamada do sqlldr:
sqlldr userid=system/senha control=ctrl.txt
conteúdo do ctrl.txt:
LOAD DATA
CHARACTERSET UTF8
INFILE ‘teste.txt’
CONTINUEIF LAST != “|”
INTO TABLE VW_BRIEFING_PROD_BUSCA_1
TRUNCATE
FIELDS TERMINATED BY ‘||’
TRAILING NULLCOLS
(COD_PRODUTO_INTERNO ,COD_CARACT_BRIEFING ,NOM_CARACT_BRIEFING,COD_TIPO_VALOR_BRIEFING ,TEXTO_LIVRE CHAR(4000),VALOR_LIVRE , DATA_LIVRE , IND_ATIVO ,NUM_PRIORIDADE_BRIEFING ,COD_PADRAO_MEDIDA ,NOM_PADRAO_MEDIDA,COD_PRODUTO_ORIGEM )Amostra de linhas do texte.bad
(arquivo que contém linhas rejeitadas na carga).||||||1||13||0||||0|
Desfrute de um delicioso vinho, com requinte e glamour! Não precisa ser um sommelier para se preocupar com cada detalhe da degustação. Mostre isso aos conados, servindo a sua bebida predileta, com este decanter. Ele possui um bojo menor, o que evita que o lÃquido entre em contato com o ar, mantendo o mais pur sabor e trazendo à tona o seu incrÃvel aroma. Com ele, complete, com muito bom gosto, a sua comemoração!||||||1||11||0||||0|
Para animar uma festa ou reunião de amigos, a pizza sempre é a melhor pedida! Com este cortador, não deixe a sua visita esperando por muito tempo: corte, muita facilidade e rapidez, fatias na medida ideal! Fabricado em inox, é resistente e possui um fio durável, permitindo que você não perca seu tempo amoo, afinal, você também merece ter o seu pedaço ainda quentinho…
||||||1||7||0||||0|
Mais praticidade e eficiência em seus trabalhos. Para garantir qualidade e beleza em seu serviço como ladrilheiro, utilize este cortador de pisos e azulej. Opte por ele e faça, com rapidez e facilidade, os recortes necessários no seu dia-a-dia, que ficarão mais precisos e bem acabados. Com um cabo ergonômiproporciona conforto e estabilidade ao manuseio, garantindo segurança para esta tarefa manual.||||||1||16||0||||0|
Tenha uma noite de descanso agradável! Seu sono está garantido, com esta colcha Queen de chenile. Fabricada em 100% algodão, é ideal para você, que busciez e suavidade para o toque da sua pele, além de beleza e charme para o seu quarto! Suas noites nunca mais vão ser as mesmas, depois que sentir o confortoue ela proporciona a você, que merece sempre o bem-estar! Opte por ela e não queira mais levantar da cama!||||||1||7||0||||0|
Para gostosas refeições ao ar livre ou para uma partida de cartas com os amigos, você não pode abrir mão do estilo. Com esta mesa redonda, feita de madeque suporta até 50 Kg, você vai poder usufruir desse conforto, sem deixar de lado a elegância e o bom gosto, muito bem reunidos no design e estilo do móvPrática, é dobrável, podendo ser guardada em qualquer cantinho, sem ocupar muito espaço. Perfeita para varandas e jardins, vai tornar seus momentos bem magradáveis.São em torno de 700mil linhas e apenas 20 estão com problemas
estas são umas delas.alguem tem alguma idéia do problema, ou alguma maneira melhor
de fazer esta carga?contéudo do crtl.log :
value used for ROWS parameter changed from 64 to 37
Record 27123: Rejected – Error on table VW_BRIEFING_PROD_BUSCA_1, column COD_PRODUTO_INTERNO.
Field in data file exceeds maximum length
Record 123232: Rejected – Error on table VW_BRIEFING_PROD_BUSCA_1, column COD_PRODUTO_INTERNO.
Field in data file exceeds maximum length
Record 140997: Rejected – Error on table VW_BRIEFING_PROD_BUSCA_1, column COD_PRODUTO_INTERNO.
Field in data file exceeds maximum length
Record 186100: Rejected – Error on table VW_BRIEFING_PROD_BUSCA_1, column COD_PRODUTO_INTERNO.
Field in data file exceeds maximum length
Record 263168: Rejected – Error on table VW_BRIEFING_PROD_BUSCA_1, column COD_PRODUTO_INTERNO.
Field in data file exceeds maximum length
Record 275967: Rejected – Error on table VW_BRIEFING_PROD_BUSCA_1, column TEXTO_LIVRE.
Field in data file exceeds maximum length
Record 322565: Rejected – Error on table VW_BRIEFING_PROD_BUSCA_1, column TEXTO_LIVRE.
Field in data file exceeds maximum length
Record 400519: Rejected – Error on table VW_BRIEFING_PROD_BUSCA_1, column COD_PRODUTO_INTERNO.
Field in data file exceeds maximum length
Record 505375: Rejected – Error on table VW_BRIEFING_PROD_BUSCA_1, column COD_PRODUTO_INTERNO.
Field in data file exceeds maximum length
Record 510519: Rejected – Error on table VW_BRIEFING_PROD_BUSCA_1, column COD_PRODUTO_INTERNO.
Field in data file exceeds maximum length
Record 537819: Rejected – Error on table VW_BRIEFING_PROD_BUSCA_1, column COD_PRODUTO_INTERNO.
Field in data file exceeds maximum length
Record 540521: Rejected – Error on table VW_BRIEFING_PROD_BUSCA_1, column COD_PRODUTO_INTERNO.
Field in data file exceeds maximum length
Record 543797: Rejected – Error on table VW_BRIEFING_PROD_BUSCA_1, column COD_PRODUTO_INTERNO.
Field in data file exceeds maximum length
Record 549445: Rejected – Error on table VW_BRIEFING_PROD_BUSCA_1, column COD_PRODUTO_INTERNO.
Field in data file exceeds maximum length
Record 551572: Rejected – Error on table VW_BRIEFING_PROD_BUSCA_1, column COD_PRODUTO_INTERNO.
Field in data file exceeds maximum length
Record 593105: Rejected – Error on table VW_BRIEFING_PROD_BUSCA_1, column COD_PRODUTO_INTERNO.
Field in data file exceeds maximum lengthEstrutura da tabela:
tabela igual a origem dos dados.
SQL> desc system.VW_BRIEFING_PROD_BUSCA
Name Null? Type
—————————————– ——– —————————-
COD_PRODUTO_INTERNO NUMBER(10)
COD_CARACT_BRIEFING NUMBER(10)
NOM_CARACT_BRIEFING VARCHAR2(60)
COD_TIPO_VALOR_BRIEFING NUMBER(10)
TEXTO_LIVRE VARCHAR2(4000)
VALOR_LIVRE NUMBER(19,4)
DATA_LIVRE DATE
IND_ATIVO NUMBER(2)
NUM_PRIORIDADE_BRIEFING NUMBER(10)
COD_PADRAO_MEDIDA NUMBER(10)
NOM_PADRAO_MEDIDA VARCHAR2(35)
COD_PRODUTO_ORIGEM NUMBER(10)tabela com datatypes alterados pra diminuir errors
SQL> desc system.VW_BRIEFING_PROD_BUSCA_1
Name Null? Type
—————————————– ——– —————————-
COD_PRODUTO_INTERNO VARCHAR2(300)
COD_CARACT_BRIEFING VARCHAR2(60)
NOM_CARACT_BRIEFING VARCHAR2(60)
COD_TIPO_VALOR_BRIEFING VARCHAR2(60)
TEXTO_LIVRE VARCHAR2(4000)
VALOR_LIVRE VARCHAR2(60)
DATA_LIVRE VARCHAR2(60)
IND_ATIVO VARCHAR2(60)
NUM_PRIORIDADE_BRIEFING VARCHAR2(60)
COD_PADRAO_MEDIDA VARCHAR2(60)
NOM_PADRAO_MEDIDA VARCHAR2(60)
COD_PRODUTO_ORIGEM VARCHAR2(60)estou mechendo nesse raio a 1 semana apenas acho que estou comendo poeira do loader tem algo faltando…
solicito ajuda !! rs
abraços..
6 de março de 2009 às 7:47 pm #85646Regis Araujo
ParticipanteVieri.. boa tarde..
Só por dúvida.. tem como vc postar umas 5 linhas dos registros que vc conseguiu importar corretamente????
Abraços..
6 de março de 2009 às 8:41 pm #85648Regis Araujo
ParticipanteVieri… boa tarde…
As linhas que vc mostrou estão com problemas… pois elas estão inserindo os valores de forma desposicionada.. verifique se os caracteres de terminação das linhas anteriores estão corretos…
Deverá existir sempre um || no final de cada valor e de cada linha… ou o sqlloader não irá importar linha alguma…
Faça um teste.. pegue o arquivo .BAD que vc informou que tem apenas 20 linhas e coloque um || no final de cada linha e importe ele… vc irá verificar no arquivo .log que irá apresentar a mesma mensagem de antes mas desta vez a coluna será a IND_ATIVO…
Com estas linhas ele está inserindo desta maneira..
null -> COD_PRODUTO_INTERNO
||
null -> COD_CARACT_BRIEFING
||
null -> NOM_CARACT_BRIEFING
||
1 -> COD_TIPO_VALOR_BRIEFING
||
13 -> TEXTO_LIVRE
||
0 -> VALOR_LIVRE
||
null -> DATA_LIVRE
||
0|TEXTO -> IND_ATIVOnull -> NUM_PRIORIDADE_BRIEFING
null -> COD_PADRAO_MEDIDA
null -> NOM_PADRAO_MEDIDA
null -> COD_PRODUTO_ORIGEM
Em algum lugar existe uma quebra de linha que informa que o valor do seu TEXTO deverá ser inserido no campo COD_PRODUTO_INTERNO…
Bom.. espero ter ajudado…
Abraços…
6 de março de 2009 às 10:31 pm #85650vieri
Participanteextamente isso que ocorreu thunder,
em alguns trechos to txt pulou linhas e o cod_produto interno
recebeu valor errado.Retirando e traillin null cols e trocando o || por ;
consegui carregar a tabela com somente campo varchar com
sucesso, na outra nomarlizda ainda com muitos erros
de datatype.6 de março de 2009 às 10:35 pm #85651vieri
Participantealgumas das linhas armazenadas com sucesso.
68989||3526||Instruções de uso||5||||.0000||1900-01-01 00:00:00.000||1||11||0||0||0|
68990||696||TÃtulo original||1||Stealth||.0000||1900-01-01 00:00:00.000||1||3||0||0||0|
68990||4409||Ano de Produção||1||2005||.0000||1900-01-01 00:00:00.000||1||11||0||0||0|
68990||8951||Região do DVD||5||||.0000||1900-01-01 00:00:00.000||1||20||0||0||0|
68990||9059||Idioma da legenda||5||||.0000||1900-01-01 00:00:00.000||1||16||0||0||0|
68990||635||Colorido||5||||.0000||1900-01-01 00:00:00.000||1||19||0||0||0|
68990||7011||Produtor||1||Mike Medavoy, Arnold Messer, Laura Ziskin||.0000||1900-01-01 00:00:00.000||1||8||0||0||0|
68990||4397||TÃtulo||1||Ameaça InvisÃvel||.0000||1900-01-01 00:00:00.000||1||5||0||0||0|
68990||8638||Gênero||5||||.0000||1900-01-01 00:00:00.000||1||1||0||0||0|
68990||9298||Clássico||5||||.0000||1900-01-01 00:00:00.000||1||24||0||0||0|
68990||8987||Formato de tela||5||||.0000||1900-01-01 00:00:00.000||1||13||0||0||0|
68990||9159||Tempo de duração||3||||121.0000||1900-01-01 00:00:00.000||1||22||40||Tempo – minuto||0|
68990||8902||PaÃs de origem||5||||.0000||1900-01-01 00:00:00.000||1||12||0||0||0|
68990||637||Diretor||1||Rob Cohen||.0000||1900-01-01 00:00:00.000||1||2||0||0||0|6 de março de 2009 às 11:36 pm #85653Regis Araujo
ParticipanteFala Vieri…
Caraca… a diferença das linhas é absurda….
Bom amigo, quando eu precisei aprender sobre Sql*Loader.. eu encontrei este FAQ.. onde ele da exemplos de como criar o arquivo Ctl de diversas maneiras e determinar os datatypes de acordo com a sua necessidade…
Me ajudou muito.. tanto que está como SUPERFAVORITOS e eu copiei todo o texto para caso o site fique fora….
Creio que já testei todas as possibilidades que estão neste FAQ e garanto.. são excelentes…!!! Tanto que realizei um teste de import com filtros e tratamento de dados por ete arquivo e por uma aplicação Delphi..
3.000.000 de linhas em um arquivo TXT…
A aplicação Delphi com conexão BDE.. tive que abortar.. mais de 3 hras..
A aplicação Delphi com conexão ADO.. mais ou menos 1 hora e 40 minutos..
A aplicação Delphi com conexão DbExpress.. mais ou menos 40 minutos..Sql*Loader.. demorou mais ou menos 10 minutos.. foi absurda a diferença…
http://www.orafaq.com/wiki/SQL*Loader_FAQ
Espero que lhe ajude como me ajudou e tem ajudado……
Qualquer coisa posta ai que tento realizar algum teste por aqui…para ajudar..!!
Abraços….
7 de março de 2009 às 12:26 am #85654vieri
Participanteconsegui realizar da seguinte forma:
Ctrl.txt
LOAD DATA
CHARACTERSET UTF8
INFILE ‘teste.txt’
CONTINUEIF LAST != “|”
INTO TABLE VW_BRIEFING_PROD_BUSCA_1
TRUNCATE
FIELDS TERMINATED BY ‘;’
(COD_PRODUTO_INTERNO ,COD_CARACT_BRIEFING ,NOM_CARACT_BRIEFING,COD_TIPO_VALOR_BRIEFING ,TEXTO_LIVRE CHAR(4000),VALOR_LIVRE , DATA_LIVRE , IND_ATIVO ,NUM_PRIORIDADE_BRIEFING ,COD_PADRAO_MEDIDA ,NOM_PADRAO_MEDIDA,COD_PRODUTO_ORIGEM)
Chamada:
sqlldr userid=system/q2rtgcv3 control=ctrl.txt
insert para tabela definitiva
SQL> insert into system.VW_BRIEFING_PROD_BUSCA(COD_PRODUTO_INTERNO,COD_CARACT_BRIEFING,NOM_CARACT_BRIEFING,COD_TIPO_VALOR_BRIEFING,TEXTO_LIVRE,VALOR_LIVRE,
2 DATA_LIVRE,IND_ATIVO,NUM_PRIORIDADE_BRIEFING,COD_PADRAO_MEDIDA,NOM_PADRAO_MEDIDA,COD_PRODUTO_ORIGEM)
3 select COD_PRODUTO_INTERNO,COD_CARACT_BRIEFING,NOM_CARACT_BRIEFING,COD_TIPO_VALOR_BRIEFING,TEXTO_LIVRE,VALOR_LIVRE,
4 data_livre,IND_ATIVO,NUM_PRIORIDADE_BRIEFING,COD_PADRAO_MEDIDA,NOM_PADRAO_MEDIDA,COD_PRODUTO_ORIGEM
5 from system.VW_BRIEFING_PROD_BUSCA_1 ;
711695 rows created.
7 de março de 2009 às 6:48 am #85658Regis Araujo
ParticipanteFala Vieri…
Entendi.. vc jogou tudo naquela tabela com datatype varchar e depois jogou para uma tabela melhor estruturada neh.. heheh…
Eh… esta é uma maneira muito pratica neh e com resultado rápido… Otima ideia..!!
Abraços….
9 de março de 2009 às 5:37 am #85663vieri
Participanteexatamente isso…
tava dando muito conflito, com datatypes pois o txt era oriundo do bpc
(SQL SERVER) – windows para oracle – unix.vou ver se jogo de produção desta maneira, pq tabela por tabela é fogo cada uma tem suas particulaaridade nos dados que já não são mto limpos…
amanhã vo postar aqui umas dúvidas conceituais que separei pra vc me ajudar se possivel…
obs: carreguei a tabela de 1 milhão de linhas em 2 min.
-
AutorPosts
- Você deve fazer login para responder a este tópico.