Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Martinsrj

Consulta ORACLE não retorna os dados

Recommended Posts

Olá pessoal, boa tarde!

Estou fazendo uma conexão com o BD oracle, porem nao me retornar nenhum dado, apesar de aparecer inumeros traços.

Segue o meu código:

testeoracle1.php

<?php
require_once 'ultimaFuncao.php';
require_once '../vantiveConf.php';
require_once 'morrer.php';

$conexao = ora_logon("{$vantive["login"]}@{$vantive["banco"]}",$vantive["senha"]);

$cursor = ora_open($conexao);

ora_parse($cursor, "SELECT * FROM swbappsp.sw_hd_case WHERE rownum <10");
ora_exec($cursor);

/* Comentário:
int ora_fetch_into ( resource cursor, array result [, int flags] )
Traz uma linha de dados dentro de uma array. O flags tem dois valores: se o ORA_FETCHINTO_NULLS flag está setado, colunas com valores NULL são setadas no array; e se o ORA_FETCHINTO_ASSOC flag está setado, um array associativo é criado. 
Retorna o número de colunas selecionadas. 
*/

while(ora_fetch_into($cursor, &$dt, ORA_FETCHINTO_ASSOC)) {    
echo $dt['swhdcaseid'] . " - " . $dt['swnote'] . "<br>\n";
}

ora_close($cursor);
?>
Possuo uma pagina chamada queryOracle.php onde utilizo para outras consultas e funciona normalmente!!!

<?php
require_once 'ultimaFuncao.php';
require_once '../vantiveConf.php';
require_once 'morrer.php';

function queryOracle($query){
	//retorna array assoc
	global $vantive;	//vantiveConf.php
	$conexao = ora_logon("{$vantive["login"]}@{$vantive["banco"]}",$vantive["senha"]);
	if( !$conexao )
		morrer('Erro em ora_logon: ' . ora_error());
	$cursor = ora_open($conexao);
	if( !$cursor )
		morrer('Erro em ora_open: ' . ora_error());

	$result = ora_parse($cursor,$query);
	$result = ora_exec($cursor);

	while(ora_fetch_into($cursor,$coluna[],ORA_FETCHINTO_NULLS|ORA_FETCHINTO_ASSOC)){}
	//if( ora_error($cursor) ) echo ora_error($cursor);
	//if( ora_error($conexao) ) echo ora_error($conexao);

	ora_close($cursor);
	ora_logoff($conexao);

	//if( count($coluna) ) array_pop($coluna); //tira um item vazio do final
	
	return $coluna;
}
?>
Abaixo segue a imagem da minha tabela:

Imagem Postada

 

Link da imagem: http://www.uploadimagens.com/upload/a7f6075eacd826f35b29734b0f702439.jpg

Compartilhar este post


Link para o post
Compartilhar em outros sites

Creio que seu problema seja mais com SQL!

 

Outra coisa, onde tem "rownum" não deveria ser o nome da coluna que você deseja?

 

http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif

Compartilhar este post


Link para o post
Compartilhar em outros sites

Boa tarde Diego!

 

Realizei a modificação no meu código (testeoracle1.php), verifique abaixo:

<?php
require_once 'ultimaFuncao.php';
require_once '../vantiveConf.php';
require_once 'morrer.php';

global $vantive;	// vantiveConf.php
$conexao = ora_logon("{$vantive["login"]}@{$vantive["banco"]}",$vantive["senha"]);

$cursor = ora_open($conexao);

ora_parse($cursor, "SELECT * FROM swbappsp.sw_hd_case WHERE rownum <20 order by swhdcaseid");
ora_exec($cursor);

while(ora_fetch_into($cursor,$dt[],ORA_FETCHINTO_NULLS|ORA_FETCHINTO_ASSOC)){    
echo $dt['swhdcaseid'] . " - " . $dt['swhdcaseid'] . "<br>";
}

ora_close($cursor);
?>

Coloquei no post anterior um print da minha tabela,

Abraços.

 

 

 

Creio que seu problema seja mais com SQL!

 

Outra coisa, onde tem "rownum" não deveria ser o nome da coluna que você deseja?

 

http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Tá, mas e aí? Resolveu? Continua não aparecendo nada?

Tente executar a query direto naquele programa que você tirou o print da tela. Se retornar algum resultado, problema no PHP. Não exibir nada, erro no SQL.

 

Carlos Eduardo

Compartilhar este post


Link para o post
Compartilhar em outros sites

Realizei a query conforme a imagem abaixo e me retornou numa boa!

Imagem Postada

 

Tá, mas e aí? Resolveu? Continua não aparecendo nada?

Tente executar a query direto naquele programa que você tirou o print da tela. Se retornar algum resultado, problema no PHP. Não exibir nada, erro no SQL.

 

Carlos Eduardo

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Creio que esteja ok agora, não?

 

Qualquer coisa, faz o que o matias_rezende falou!

 

Abraços e boa sorte! http://forum.imasters.com.br/public/style_emoticons/default/joia.gif

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ola pessoal, boa noite!!!

Estou me esforcando para descobrir o erro do porque no programa do oracle ele me retorna a consulta e no codigo do php nao!

 

Alguem tem alguma ideia do que seja essa situacao.

OBS.: o while funciona, pois cria uma laco de varios tracos, menos o principal... rsrsrs... os DADOS.

 

Abracos e fiquem com Deus.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Nunca usei Oracle, mas vamos tentar... Se o while está funcionando, então o problema é só a impressão. Vamos imprimir o que vem da consulta pra ver.

 

echo '<pre>';
while(ora_fetch_into($cursor,$dt[],ORA_FETCHINTO_NULLS|ORA_FETCHINTO_ASSOC)){    
print_r($dt);
//echo $dt['swhdcaseid'] . " - " . $dt['swhdcaseid'] . "<br>";
}
echo '</pre>';

 

Veja o que imprime.

 

Carlos Eduardo

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ola Matias, boa noite!

Deixei o meu codigo php da seguinte forma conforme a sua orientacao:

<?php
require_once 'ultimaFuncao.php';
require_once '../vantiveConf.php';
require_once 'morrer.php';

global $vantive;	// vantiveConf.php
$conexao = ora_logon("{$vantive["login"]}@{$vantive["banco"]}",$vantive["senha"]);

$cursor = ora_open($conexao);

ora_parse($cursor, "SELECT * FROM swbappsp.sw_hd_case WHERE rownum <20 order by swhdcaseid");
ora_exec($cursor);

// while(ora_fetch_into($cursor,$dt[],ORA_FETCHINTO_NULLS|ORA_FETCHINTO_ASSOC)){    
// echo $dt['swhdcaseid'] . " - " . $dt['swhdcaseid'] . "<br>";
// }

echo '<pre>';while(ora_fetch_into($cursor,$dt[],ORA_FETCHINTO_NULLS|ORA_FETCHINTO_ASSOC)){    
print_r($dt);
//echo $dt['swhdcaseid'] . " - " . $dt['swhdcaseid'] . "<br>";
}
echo '</pre>';

ora_close($cursor);
?>

O resultado foi esse, porem peguei apenas as primeiras linhas, pois sao muitos:

Array
(
    [0] => Array
        (
            [SWHDCASEID] => 1
            [SWASSIGNEDTO] => 
            [SWDEPARTMENTID] => 
            [SWREPORTEDBY] => 30116
            [SWCONTACTID] => 30116
            [SWHDDEFECTID] => 
            [SWNODEID] => 
            [SWINSTPRODID] => 
            [SWPRODRELEASEID] => 
            [SWRESOLUTIONID] => 
            [SWRESOLVEDBY] => 
            [SWRESBYFIRSTCALL] => 
            [SWGLOBALIMPACT] => 1
            [SWPROBLEMCODEID] => 
            [SWWORKAROUNDID] => 
            [SWRESOLVEDTOOL] => 
            [SWCODE] => 
            [SWSPECIALTYTYPE] => 
            [SWPROBLEMAREA] => 
            [SWSPECIALTYID] => 
            [SWPRIORITY] => 
            [SWREASONCLOSED] => 
            [SWRECEIVEDVIA] => Telefone
            [SWREPLYVIA] => 
            [SWSATISFACTIONLEV] => 
            [SWSEVERITY] => 
            [SWSTATUS] => 
            [SWTYPE] => 
            [SWFIXTIME] => 
            [SWTIMETOREPAIR] => 
            [SWREPAIRTIME] => 
            [SWTOTALFIXTIME] => 
            [SWTIMETYPE] => 
            [SWTIMESPARE] => 
            [SWCOMMITTIME] => 
            [SWEXTENSION] => 
            [SWACTRESPDATE] => 
            [SWDATERESOLVED] => 16/08/02
            [SWFOLLOWUPON] => 
            [SWNOTE] => Usuária com dificuldades para inserir  nf manual.

            [SWRESPONDBY] => 
            [SWRMANUMBER] => 
            [SWRMAEXPIRATION] => 
            [SWERRORCODE] => 
            [SWERRORMESSAGE] => 
            [SWCBRTITLE] => 
            [SWCOURIER] => 
            [SWKEYWORDS] => 
            [SWKEYWORDLIST] => 
            [SWWAYBILLNUMBER] => 
            [SWSUBJECT] => 
            [SWBEEPDISPATCH] => 
            [SWBEEPSECONDARY] => 
            [SWBEEPTHIRD] => 
            [SWBEEPFOURTH] => 
            [SWCBRINPUT1] => 
            [SWCBROUTPUT3] => 
            [SWMODIFIEDBY] => 
            [SWDATEMODIFIED] => 
            [SWMASTERVER] => 38483849
            [SWCREATEDBY] => atl.fsantanna
            [SWDATECREATED] => 10/08/02
            [TIMESTAMP] => 38483849
            [TATYPE] => 163
            [TALEVEL1] => 205
            [TALEVEL2] => 605
            [TALEVEL3] => 1336
            [TASTATUSID] => 3
            [TASTATUSDETAILID] => 130
            [TAFILAID] => 
            [TASECRET] => 0
            [TAVIP] => 1
            [TANOTIFYSTATUSDETAIL] => 1
            [TAEXECUTIONDATE] => 10/08/02
            [TACLOSEDBY] => atl.pfaria
            [TADATECLOSED] => 16/08/02
            [SWSITEID] => 125
            [TASLA] => 60
            [TAEMNOMEDE] => 
            [TASATISFACAO] => 0
            [TACRITICAL] => 1
            [SWCUSTOMERID] => 
            [TACOSTCENTERID] => 
            [TASITEID] => 125
            [TACUSTOMERID] => 51
            [TANOTIFYFLG] => 0
            [TACELULARBEN] => 
            [TARAMALBEN] => 
            [TATELEFONEBEN] => 
            [TAFLAGUSUARIO] => 0
            [TANOMEBEN] => 
            [TAHDCASEPARENTID] => 
            [TAHDCASELEVEL] => 
            [TALASTQUEUEAUTOMATICID] => 
            [TAALARMID] => 
            [TASWCASEID] => 
            [TACASEID] => 
            [TAPRIORIDADEID] => 
        )

)
Array
(
    [0] => Array
        (
            [SWHDCASEID] => 1
            [SWASSIGNEDTO] => 
            [SWDEPARTMENTID] => 
            [SWREPORTEDBY] => 30116

Nunca usei Oracle, mas vamos tentar... Se o while está funcionando, então o problema é só a impressão. Vamos imprimir o que vem da consulta pra ver.

 

echo '<pre>';
while(ora_fetch_into($cursor,$dt[],ORA_FETCHINTO_NULLS|ORA_FETCHINTO_ASSOC)){    
print_r($dt);
//echo $dt['swhdcaseid'] . " - " . $dt['swhdcaseid'] . "<br>";
}
echo '</pre>';

 

Veja o que imprime.

 

Carlos Eduardo

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

O PHP é case sensitive...

 

Isto

 

echo $dt['swhdcaseid'] . " - " . $dt['swhdcaseid'] . "<br>";

É diferente de

 

echo $dt['SWHDCASEID'] . " - " . $dt['SWHDCASEID'] . "<br>";

Carlos Eduardo

Compartilhar este post


Link para o post
Compartilhar em outros sites

Matias, continua dando o mesmo erro!

Desde ja agradeco pela sua ajuda, fique com Deus!

Veja o codigo abaixo:

<?php
require_once 'ultimaFuncao.php';
require_once '../vantiveConf.php';
require_once 'morrer.php';

global $vantive;	// vantiveConf.php
$conexao = ora_logon("{$vantive["login"]}@{$vantive["banco"]}",$vantive["senha"]);

$cursor = ora_open($conexao);

ora_parse($cursor, "SELECT * FROM swbappsp.sw_hd_case WHERE rownum <20 order by swhdcaseid");
ora_exec($cursor);

 while(ora_fetch_into($cursor,$dt[],ORA_FETCHINTO_NULLS|ORA_FETCHINTO_ASSOC)){    
 echo $dt['SWHDCASEID'] . " - " . $dt['SWNOTE'] . "<br>";
 }

// echo '<pre>';
// while(ora_fetch_into($cursor,$dt[],ORA_FETCHINTO_NULLS|ORA_FETCHINTO_ASSOC)){    
// print_r($dt);
//echo $dt['swhdcaseid'] . " - " . $dt['swhdcaseid'] . "<br>";
// }
echo '</pre>';

ora_close($cursor);
?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Consegui dessa forma:

while(ora_fetch_into($cursor, &$dt, ORA_FETCHINTO_ASSOC)) 
{    
echo $dt['SWHDCASEID'] . " - " . $dt['SWNOTE'] . "<br>\n";
}

 

Paulo Martins

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá pessoal, boa noite!!!

Estou com uma dúvida, pois com o seguinte código abaixo eu consigo realizar a consulta de acordo com os campos que estão dentro do while:

<?php
require_once 'ultimaFuncao.php';
require_once '../vantiveConf.php';
require_once 'morrer.php';
global $vantive;	// vantiveConf.php
$conexao = ora_logon("{$vantive["login"]}@{$vantive["banco"]}",$vantive["senha"]);

$cursor = ora_open($conexao);

// ora_parse($cursor, "SELECT * FROM swbappsp.sw_hd_case WHERE rownum < 20 order by swhdcaseid");
// ora_exec($cursor);

// while(ora_fetch_into($cursor,$dt[],ORA_FETCHINTO_NULLS|ORA_FETCHINTO_ASSOC)){    
// echo $dt['SWHDCASEID'] . " - " . $dt['SWNOTE'] . "<br>";
// }
 
$cursor = ora_open($conexao);
ora_parse($cursor, "SELECT * FROM swbappsp.sw_hd_case WHERE rownum < 20 order by swhdcaseid desc");
ora_exec($cursor);
while(ora_fetch_into($cursor, &$dt, ORA_FETCHINTO_ASSOC)) 
{    
echo $dt['SWHDCASEID'] . " - " . $dt['SWNOTE'] . "<br>\n";
}


// echo '<pre>';
// while(ora_fetch_into($cursor,$dt[],ORA_FETCHINTO_NULLS|ORA_FETCHINTO_ASSOC)){    
// print_r($dt);
//echo $dt['swhdcaseid'] . " - " . $dt['swhdcaseid'] . "<br>";
// }
// echo '</pre>';

ora_close($cursor);
?>
Porem o código abaixo não me retorna nada no Browser:

<?php
require_once 'ultimaFuncao.php';
require_once '../vantiveConf.php';
require_once 'morrer.php';
global $vantive;	// vantiveConf.php
$conexao = ora_logon("{$vantive["login"]}@{$vantive["banco"]}",$vantive["senha"]);

$cursor = ora_open($conexao);
ora_parse($cursor, "SELECT * FROM swbappsp.sw_work_log WHERE rownum < 20 order by swworklogid");
ora_exec($cursor);
while(ora_fetch_into($cursor, &$dt, ORA_FETCHINTO_ASSOC)) 
{    
echo $dt['SWOBJECTID'] . " - " . $dt['SWNOTE'] . "<br>\n";
}

ora_close($cursor);
?>
Porem no programa que utilizo para conexao com oracle e para gerar relatório retorna o resultado, veja a imagem abaixo:

Imagem Postada

Desde já agradeço pelos esclarecimentos.

Obs.: Segue os campos da tabela:

Imagem Postada

 

 

2 Samuel

22:28 E o povo aflito livras; mas teus olhos são contra os altivos, e tu os abaterás.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá pessoal, boa tarde!

Desde já peço desculpas pela insistencia, pois necessito e muito a resolução da situação do código.

 

Agradeço todo tipo de dicas,

 

Abraços a todos.

Compartilhar este post


Link para o post
Compartilhar em outros sites

A questão é que você tá usando ORACLE... e a maioria do pessoal (eu inclusive) não entende nada de ORACLE. Daí fica difícil de te ajudar. Vou editar o título pra ver se ajuda.

 

Carlos Eduardo

Compartilhar este post


Link para o post
Compartilhar em outros sites

Valeu Matias pela sua atenção!

Acredito que você seja temente a Deus e desde já peço as suas orações.

 

Abraços e anote o meu email: falecommartins@hotmail.com

 

A questão é que você tá usando ORACLE... e a maioria do pessoal (eu inclusive) não entende nada de ORACLE. Daí fica difícil de te ajudar. Vou editar o título pra ver se ajuda.

 

Carlos Eduardo

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ola pessoal, Matias, boa noite!

Troquei a funcao do php de ORA para OCI, mesmo porque a funcao ORA esta ultrapassada e o OCI e nativa do oracle. Mesmo apos a troca a tabela eu nao consegui visualizar atraves da consulta. Fui ate o DBA para checar essa situacao e o mesmo verificou com o login que eu tenho no oracle nao me da acesso a consulta e com isso terei que abrir um chamado. Passei a situacao para o meu supervisor, agora e aguardar o fechamento do chamado para que eu realize os novos testes.

 

Desde ja agradeco novamente pela ajuda de todos.

 

Abracos Matias e fique com Cristo. http://forum.imasters.com.br/public/style_emoticons/default/joia.gif

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.