Ir para conteúdo
Fórum Script Brasil
  • 0

Exportar query oracle para excel


Peter Link

Pergunta

Boa tarde galera,

Estou tendo problemas para exportar um query oracle para excel, retorna o erro

Catchable fatal error: Object of class OCI-Lob could not be converted to string in C:\Program Files (x86)\Apache Software Foundation\Apache2.2\htdocs\mis\SD\class\ClassExcel.php on line 32
ClassExcel
<?php

ini_set("memory_limit","500M");

class ClassExcel{

    private $query;
    private $nome_rel;
    private $con;

    function gerar(){
    
    $query = $this->query;
    
    $export = @OCIParse($this->con, $this->query);
    $exec = OCIExecute($export);
    // aqui pego a quantidade de campos existentes na tabela, afim de formar a planilha 
    $fields = @oci_num_fields($export);

    for ($i = 1; $i <= $fields; $i++) {
        $header .= @oci_field_name($export, $i) . ";";
    }

    while($row = @oci_fetch_row($export)) {
        $line = '';
        foreach($row as $value) { 
            if ((!isset($value)) OR ($value == "")) {
                $value = ";";
            } else {
                $value = str_replace('"', '""', $value);
                $value = '"' . $value . '"' . ";";
            }
                $line .= $value;
        }
        // o trim retira os espaços encontrados no começo e no final de cada linha encontrada. 
        $dados .= trim($line)."\n";
    }
    // substituindo todas as quebras de linha ao final de cada registro, que por padrão seria \r por uma valor em branco, para que a formatação fique legível
    $dados= str_replace("\r","",$dados);


    // Caso não encontre nenhum registro, mostra esta mensagem. 
    if ($dados== "") {
        $dados = "\n Nenhum registro encontrado!\n "; 
    } 

    header("Content-type: application/octet-stream");
    // este cabeçalho abaixo, indica que o arquivo deverá ser gerado para download (parâmetro attachment) e o nome dele será o contido dentro do parâmetro filename. 
    header("Content-Disposition: attachment; filename=relatorio_$this->nome_rel.csv");
    // No cache, ou seja, não guarda cache, pois é gerado dinamicamente 
    header("Pragma: no-cache");
    // Não expira 
    header("Expires: 0");
    // E aqui geramos o arquivo com os dados mencionados acima! 
    print "$header\n$dados";
    
    }
    
    function set($prop,$value)
    {
        $this->$prop = $value;
    }

}
a pagina que estou mandando exportar
<?php

include_once("class/banco.php");//incluindo o banco
require_once("class/ClassExcel.php");//incluindo Classe TabelasRegionais
    
    
    $Regionais_table = New ClassExcel;
    $Regionais_table->set('con',$conexao->conectar());

    $id = $_GET['id'];



        $Regionais_table->set('query',"SELECT * FROM FACT_SDEMANDA a
                                WHERE 
                                a.ID in ( 
                                    select ID_SOLICITACAO 
                                    from FACT_SD_STATUS 
                                    where 
                                        STATUS = 'Finalizada')");

    
                                                
                                            
    
    $Regionais_table->set('sdemanda','Geral');
    
    $Regionais_table->gerar();
    
    $conexao->fechaCon();
        
?>

Agradeço desde já!

Link para o comentário
Compartilhar em outros sites

0 respostass a esta questão

Posts Recomendados

Até agora não há respostas para essa pergunta

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,1k
    • Posts
      651,8k
×
×
  • Criar Novo...