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();
?>
Pergunta
Peter Link
Boa tarde galera,
Estou tendo problemas para exportar um query oracle para excel, retorna o erro
ClassExcel a pagina que estou mandando exportarAgradeço desde já!
Link para o comentário
Compartilhar em outros sites
0 respostass a esta questão
Posts Recomendados
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.