<div dir="ltr"><div class="gmail_quote"><div dir="ltr"><div class="gmail_quote"><div dir="ltr">Hernan e Joenio,<div><br></div><div>Executei o código com o Data::Printer e foi retornado o valor "\0\0\0\0\0\0\0" na variável nos casos de campos NULL. Pelo menos já é uma luz... hehehehe.</div>



<div><br></div><div>Segue abaixo a subrotina em questão para que vocês possam dar uma olhada. Ela ainda está crua, pois como emperrei nesse problema, fiquei exclusivamente nele.</div><div><br></div></div><div class="gmail_extra">


<br></div><div class="gmail_extra"><br></div><div class="gmail_extra">
<div class="gmail_extra">sub insereMy {</div><div class="gmail_extra">        my ($procedure,$database,$table) = @_;</div><div class="gmail_extra"><br></div><div class="gmail_extra">        my ($coluna, $dado, $camposSql, $valuesSql, $querySql, $querySqlTrunc, $i, @tipoCampos, @row, @result);</div>


<div class="gmail_extra"><br></div><div class="gmail_extra">        if(!defined($procedure) or !defined($database) or !defined($table) or ($procedure eq "") or ($database eq "") or ($table eq "")){</div>


<div class="gmail_extra">                print "Favor informar todos os parâmetros!\n";</div><div class="gmail_extra">                print "P1: PROCEDURE\n";</div><div class="gmail_extra">                print "P2: BANCO DESTINO!\n";</div>


<div class="gmail_extra">                print "P3: TABELA DESTINO!\n";</div><div class="gmail_extra">                return 0;</div><div class="gmail_extra"><br></div><div class="gmail_extra">        }elsif(defined($procedure) or defined($database) or defined($table)){</div>


<div class="gmail_extra"><br></div><div class="gmail_extra">                &conexaoTcf("$procedure");</div><div class="gmail_extra"><br></div><div class="gmail_extra">                $querySqlTrunc = "TRUNCATE TABLE $table;";</div>


<div class="gmail_extra"><br></div><div class="gmail_extra">                &conexaoMysql("$database", "$table", "$querySqlTrunc");</div><div class="gmail_extra"><br></div><div class="gmail_extra">


                $camposSql = join ", ", @{$dbResultDb2->{NAME}};</div><div class="gmail_extra"><br></div><div class="gmail_extra">                for($coluna = 0; $coluna < $tCampos; $coluna = $coluna + 1){</div>


<div class="gmail_extra">                          $tipoCampos[$coluna] = $dbResultDb2->{TYPE}->[$coluna];</div><div class="gmail_extra">                }</div><div class="gmail_extra"><br></div><div class="gmail_extra">


                while(@row = $dbResultDb2->fetchrow_array) {</div><div class="gmail_extra">                        $valuesSql = "";</div><div class="gmail_extra"><br></div><div class="gmail_extra">                        for($coluna = 0; $coluna < $tCampos; $coluna = $coluna + 1){</div>


<div class="gmail_extra"><span style="white-space:pre-wrap">                                            </span></div><div class="gmail_extra">                                print "Tamanho: ".length($row[$coluna])."\n";</div><div class="gmail_extra">


                                p $row[$coluna];</div><div class="gmail_extra"><br></div><div class="gmail_extra">                                if (!$row[$coluna]){</div><div class="gmail_extra"><br></div><div class="gmail_extra">


                                        $dado = 'NULL';</div><div class="gmail_extra"><br></div><div class="gmail_extra">                                }else{</div><div class="gmail_extra"><br></div><div class="gmail_extra">


                                        if (($tipoCampos[$coluna] == 3 or $tipoCampos[$coluna] == 6 or $tipoCampos[$coluna] == 7) and (defined($row[$coluna]))){</div><div class="gmail_extra"><br></div><div class="gmail_extra">


                                                $dado = $row[$coluna];</div><div class="gmail_extra">                                                $dado =~ s/[,]/./;</div><div class="gmail_extra"><br></div><div class="gmail_extra">


                                        }else{</div><div class="gmail_extra"><br></div><div class="gmail_extra">                                                $dado = $row[$coluna];</div><div class="gmail_extra">                                        }</div>


<div class="gmail_extra"><span style="white-space:pre-wrap">                                                                            </span>                                        }</div><div class="gmail_extra"><br></div><div class="gmail_extra">                                }</div>


<div class="gmail_extra"><br></div><div class="gmail_extra">                        $result[$coluna] = $dado;</div><div class="gmail_extra"><br></div><div class="gmail_extra">                        #print "Dado: ".$dado;</div>


<div class="gmail_extra">                        #print "\n";</div><div class="gmail_extra">                        #print "Row: ".$row[$coluna];</div><div class="gmail_extra">                        #print "\n";</div>


<div class="gmail_extra"><br></div><div class="gmail_extra">                        }#FIM FOR COLUNA</div><div class="gmail_extra"><br></div><div class="gmail_extra"><br></div><div class="gmail_extra">                        ###Monta valores para insert</div>


<div class="gmail_extra">                        for($coluna = 0; $coluna < $tCampos; $coluna = $coluna + 1){</div><div class="gmail_extra">                                $valuesSql = $valuesSql.'"'.$result[$coluna].'",';</div>


<div class="gmail_extra">                        }</div><div class="gmail_extra">                        ###Retira a virgula do ultimo valor</div><div class="gmail_extra">                        $valuesSql =~ s/,+$//;</div>


<div class="gmail_extra"><span style="white-space:pre-wrap">                                            </span></div><div class="gmail_extra">                        $querySql = "insert into $table ($camposSql) values ($valuesSql);";</div><div class="gmail_extra">


                        &conexaoMysql("$database", "$table", $querySql);</div><div class="gmail_extra"><br></div><div class="gmail_extra">                }#FIM WHILE</div><div class="gmail_extra">

<br>
</div><div class="gmail_extra">                $dbResultDb2->finish();</div><div class="gmail_extra">        }#FIM ELSEIF</div><div class="gmail_extra">}#FIM SUBROTINA</div><div class="gmail_extra"><br></div><div class="gmail_extra">


<br></div><br><div class="gmail_quote">Em 27 de agosto de 2014 18:56, Hernan Lopes <span dir="ltr"><<a href="mailto:hernanlopes@gmail.com" target="_blank">hernanlopes@gmail.com</a>></span> escreveu:<br><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex">



<div dir="ltr"><div><div><div><div><div>Alisson,<br><br></div>Pode mostrar o código que você está usando ?<br></div>Está usando DBIx::Class ?<br></div>ou DBI puro ?<br><br></div>de qualquer maneira, não sei se vc está usando mas caso não esteja pode tentar usar o Data::Printer pra debugar teu problema...<br>




<br>perl -e 'use Data::Printer; my @bla = (qw|aa bb cc|); warn p @bla;' <br></div><br><br><br><div><div><br></div></div></div><div class="gmail_extra"><br><br><div class="gmail_quote">2014-08-27 18:15 GMT-03:00 Allisson Andrade Lima <span dir="ltr"><<a href="mailto:allissonlima1@gmail.com" target="_blank">allissonlima1@gmail.com</a>></span>:<br>




<blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex"><div dir="ltr">Olá,<div><br></div><div>Gostaria de compartilhar e tentar identificar a causa de um problema que estou passando em um Script que estou escrevendo em Perl.</div>




<div><br></div><div>Este Script realiza a execução de uma Stored Procedure em um banco DB2 e importa os dados para um banco Mysql. Realizo um fetcharray e vou percorrendo linha a linha, tratando as colunas e adicionando em um array. O problema é que caso haja um campo NULL no resultado eu não tenho um retorno undef. A variável inicialmente não possui valor, mas caso eu faça um length eu tenho um retorno com um valor acima de zero, logo ela também não fica undef. </div>






<div><br></div><div>Com esse problema eu não estou conseguindo tratar esses casos para campos com valor nulo. Gostaria que alguém me ajudasse caso saibam o que pode estar acontecendo.<br></div><div><br></div><div>Fico feliz pela ajuda,</div>






<div><br></div><div>Allisson Lima</div></div>
<br>_______________________________________________<br>
Salvador-pm mailing list<br>
<a href="mailto:Salvador-pm@pm.org" target="_blank">Salvador-pm@pm.org</a><br>
<a href="http://mail.pm.org/mailman/listinfo/salvador-pm" target="_blank">http://mail.pm.org/mailman/listinfo/salvador-pm</a><br>
<br></blockquote></div><br></div>
<br>_______________________________________________<br>
Salvador-pm mailing list<br>
<a href="mailto:Salvador-pm@pm.org" target="_blank">Salvador-pm@pm.org</a><br>
<a href="http://mail.pm.org/mailman/listinfo/salvador-pm" target="_blank">http://mail.pm.org/mailman/listinfo/salvador-pm</a><br>
<br></blockquote></div><br></div>
</div><br></div>
</div><br></div>