[Cascavel-pm] executar loader no oracle via perl

Daniel de Oliveira Mantovani daniel.oliveira.mantovani em gmail.com
Quarta Agosto 12 06:58:40 PDT 2009


Resposta de André Carneiro:

Recomendo fortemente que você use SQLLoader, da própria Oracle. O
comando chama-se sqlldr. Você só precisa criar um arquivo de dados e
um com a configuração do SQLLoader, ou tudo em apenas um arquivo. Aí
só precisa passa um comando via shell, ou utilizar um módulo
disponível no CPAN para manipular SQLLoader(eu ainda não testei
nenhum).


Recomendo dar uma olhada  nesses sites também:

http://www.psoug.org/reference/sqlloader.html
http://www.orafaq.com/wiki/SQL*Loader_FAQ



Cheers!

2009/8/11 Elvio Barbalho <elvio.barbalho em gmail.com>:
> Senhores bom dia, estou tentando executar um loader via perl. estou
> utilizando a versao 5.10.0 no windows xp. segue a prate do codigo que estou
> com problemas.
>
> sub loaderInadifixa
> {
>     GravaLog($logHandele,"INICIO DO LOADER DO ARQUIVO INADIFIXA!!!!");
>     my $arq_loader_ctl = $_[0];
>     my $arq_loader = $_[1];
>     my $sql = "sqlldr direct=true discard=C:\\Temp\\transact\\log.dis
> userid=xxxx\@yyyy/xxxxcontrol=C:\\Temp\\transact\\Transact_loader_20090811.ctl
> data=C:\\Temp\\transact\\Transact_loader_20090811.txt
> BAD=C:\\Temp\\transact\\bad_execucao.bad
> log=C:\\Temp\\transact\\log_execucao.log";
>
>     my $dbh = DBI->connect("DBI:Oracle:$banco",$usuario,$senha)
>         or die("Nao foi possivel realizar a conexao com o bando de dados:
> $DBI::errstr");
>
>     my $sth = $dbh->prepare($sql)
>         or die("nao foi possivel preparar o comando: ", $dbh->errstr(),
> "\n");
>
>     $sth->execute() or die ("Nao foi possivel executar o comando:",
> $sth->errstr(),"\n");
>
>     GravaLog($logHandele,"FIM DO LOADER DO ARQUIVO INADIFIXA!!!!");
> }
>
>
> esta ocorrendo o seguinte erro.
>
> DBD::Oracle::st execute failed: ORA-00900: invalid SQL statement (DBD ERROR:
> OCIStmtExecute) [for Statement "sqlldr direct=true
> discard=C:\Temp\transact\log.dis userid=TRANSACT em ACRDEV1/transact
> control=C:\Temp\transact\Transact_loader_20090811.ctl
> data=C:\Temp\transact\Transact_loader_20090811.txt
> BAD=C:\Temp\transact\bad_execucao.bad
> log=C:\Temp\transact\log_execucao.log"] at
> C:/workspace/Scripts_Perl/Transact.pl line 168.
> Nao foi possivel executar o comando:ORA-00900: invalid SQL statement (DBD
> ERROR: OCIStmtExecute)
>
>
> Entretanto quando executo o loader na mao
>
> sqlldr direct=true discard=C:\Temp\transact\log.dis
> userid=TRANSACT em ACRDEV1/transact
> control=C:\Temp\transact\Transact_loader_20090811.ctl
> data=C:\Temp\transact\Transact_loader_20090811.txt
> BAD=C:\Temp\transact\bad_execucao.bad log=C:\Temp\transact\log_execucao.log
>
> ele roda ok!!!!!!
>
>
> Elvio Barbalho
> Brasília, DF
> Brasil
>
> T + 55 61 21096814
> C + 55 61 84223137
> C + 55 61 81751213
> elvio.barbalho em gmail.com
>
>
>
> _______________________________________________
> Cascavel-pm mailing list
> Cascavel-pm em pm.org
> http://mail.pm.org/mailman/listinfo/cascavel-pm
>



-- 
"Deus usa os loucos pra confundir os sábios"
http://mantovanihouse.blogspot.com/
This is my poney:
-------(\_------------_/)-----------
-------)--(----------)--(-----------
------(----(---------)----)----------
-------)----(-------)----(-----------
-------(----(-------)----)-----------
--------\_-(\\.---.//)-_/------------
----------\)' -8--8- '(/--------------
-----------/------------\---------------
----------(--)--------(--)--------------
------------(_c__c_)----------------
----------------------------------------
perl -MLWP::Simple -le 'grep{ print $1 if
/href="(http.+?)"/}split($/,get("http://www.perl.org.br"))'


Mais detalhes sobre a lista de discussão Cascavel-pm