Jump to content
Fórum Script Brasil
  • 0

Exportar query oracle para excel


Peter Link

Question

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 to comment
Share on other sites

0 answers to this question

Recommended Posts

There have been no answers to this question yet

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.



  • Forum Statistics

    • Total Topics
      152.2k
    • Total Posts
      652k
×
×
  • Create New...