"Cleiton L. Siqueira" <[EMAIL PROTECTED]> writes:

> ----------- Inicio Codigo --------------
> #!/usr/bin/perl
>
> use Pg;
> $conn = Pg::connectd "dbname=teste");
> $TABLE = 'Coloque aqui o nome de sua tabela';
>
> open(FILE, "/var/log/radacct/default/detail");

Como voc� sabe que o arquivo foi aberto? Voc� n�o est�
checando. *SEMPRE* cheque o resultado de uma opera��o de abertura de
arquivos, grava��o de dados, etc. N�o h� garantia que ela funcionar�
em 100% dos casos.

Aqui podes fazer:

open(FILE, "/var/log/radacct/default/detail") or die "Can't open file: $!\n";

Assim voc� saber� o motivo do erro, se houver erro. 

> @linhas = <FILE>;

Isso � um problema: todo o arquivo ser� jogado na mem�ria neste
instante. Se voc� n�o tiver muita mem�ria... 

> close(FILE);
>
> foreach $linha (@linhas) {

Elimine as duas linhas anteriores a esta e mude esta para:

foreach $linha (<FILE>) {

> @dados = split(/ /,$linha); # Utilize o delimitador de acordo com seu arquivo
> $conn->exec("INSERT INTO $TABLE values
> ($dados[0],$dados[1],$dados[2],$dados[3],.... etc e tal);");
>
> }

Podes adicionar o 'close(FILE);' aqui, mas o Perl se encarregar� de
fechar o arquivo no t�rmino do programa. 

> ----------- Fim Codigo --------------
>
> Eu uso mais ou menos assim, s� que utilizo Banco de Dados PostgreSQL.
> Acredito que n�o deve mudar muita coisa.
>
> Trato arquivos bem grandes e funciona normalmente!

Voc� deve ter muita mem�ria dispon�vel ou arquivos menores que os dele
ou n�o est� tendo problemas na abertura dos arquivos ou... Bem, n�o h�
checagens de erro no programa acima, ent�o pode ser bastante coisa.
:-) 


Sds,
-- 
Godoy.    <[EMAIL PROTECTED]>
_______________________________________________________________
Sair da Lista: http://www2.fugspbr.org/mailman/listinfo/fugspbr
Historico: http://www4.fugspbr.org/lista/html/FUG-BR/

Responder a