Ir para conteúdo

Arquivado

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

André Ormenese

Stored Function com PostgreSQL

Recommended Posts

Pessoal,

em primeiro lugar gostaria de agradecer a enorme força de todos vcs. Estou conseguindo ultrapassar todas as minhas dificuldades.

 

A pergunta agora é a seguinte: Tem alguém aí que utiliza stored function do Postgresql para executar as operações de banco com o PHP ?

 

Eu tenho uma que retorna, através de um refCursor, várias linhas de uma tabela.

Só que eu não consigo acessar os dados retornados pelo ref cursor.

 

Estou tentando assim :

function ExecutaFunct($argumento)	{		$lista = array();		$query = pg_query($this->conex,$argumento) or die($this->DBError());		while($reg = pg_fetch_array($query,NULL,PGSQL_ASSOC))		{			$lista[] = $reg;		}				return $lista;	}

onde argumento = "select busca_bolsa7(1,'ref')";

 

Aí eu recebo este resultado :

Array ( [0] => Array ( [busca_bolsa7] => ref ) ) Array ( [0] => Array ( [busca_bolsa7] => ref ) )

 

Sendo que, se eu executar um select direto no php, recebo este resultado :

 

Array ( [0] => Array ( [0] => 0101001-002 [1] => 01101 [2] => Plasma [3] => Hemocentro da Unicamp ) [1] => Array ( [0] => 0101001-003 [1] => 01101 [2] => Plasma [3] => Hemocentro da Unicamp ) [2] => Array ( [0] => 0101001-004 [1] => 01101 [2] => Plasma [3] => Hemocentro da Unicamp ) [3] => Array ( [0] => 0101001-007 [1] => 01101 [2] => Teste de Componente aaaaaaaaa [3] => Hemocentro da Unicamp ) [4] => Array ( [0] => 0101001-001 [1] => 01101 [2] => Concentrado de Hemácias [3] => Hemocentro da Unicamp ) [5] => Array ( [0] => 0101001-005 [1] => 01101 [2] => Plaqueta [3] => Hemocentro da Unicamp ) [6] => Array ( [0] => 0101001-006 [1] => 01101 [2] => Plaqueta [3] => Hemocentro da Unicamp ) )

 

Existe algum truque para se usar esse tal de refcursor ?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Galera, já consegui a resposta.O Postgresql precisa de um comando após o retorno do refcursor : FETCH ALL IN nome_do_cursor_retornado.Então a chamada da stored function fica assim :$teste= "select busca_bolsa7(".$_SESSION["user_serv"].",'ref');FETCH ALL IN ref";É isso, agora vou tentar utilizar o pg_fetch_all.

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.