Boas malta,
Tenho aqui uma dúvida num problema académico problema que passo a explicar.
Tenho um Procedimento Armazenado que serve para mostrar todos os tipos de viaturas e respetiva descrição, e quero mostrar o resultado desse procedimento numa página php. Até aqui tudo bem, quando chamo procedimentos com variáveis de entrada através de formulários que assumo os valores dos campos do formulário no procedimento é fácil, mas quando apenas tenho parâmetros de saída não consigo chamar, a minha variável de saída dá null. Vou meter o código para verem melhor.
Procedimento:
Código (PL/SQL):
Chamada em PHP:
Código (PHP):
No entanto a variável de saída devolve null, verifiquei através do var_dump().
Poderia fazer a query diretamente na pagina e mostrar..já o fiz para testar e funciona perfeitamente mas não e esse o objetivo. Alguém que me consiga ajudar?
Tenho aqui uma dúvida num problema académico problema que passo a explicar.
Tenho um Procedimento Armazenado que serve para mostrar todos os tipos de viaturas e respetiva descrição, e quero mostrar o resultado desse procedimento numa página php. Até aqui tudo bem, quando chamo procedimentos com variáveis de entrada através de formulários que assumo os valores dos campos do formulário no procedimento é fácil, mas quando apenas tenho parâmetros de saída não consigo chamar, a minha variável de saída dá null. Vou meter o código para verem melhor.
Procedimento:
Código (PL/SQL):
CREATE OR REPLACE PROCEDURE mostra_tipo_viatura(resultados IN OUT sys_refcursor) IS
BEGIN
OPEN resultados FOR
SELECT ID_TIPO_VIATURA AS TVI, TIPO AS T FROM TIPO_VIATURA;
END;
BEGIN
OPEN resultados FOR
SELECT ID_TIPO_VIATURA AS TVI, TIPO AS T FROM TIPO_VIATURA;
END;
Chamada em PHP:
Código (PHP):
$query = OCI_PARSE($conn, "BEGIN MOSTRA_TIPO_VIATURA(:resultados); END;");
OCI_Bind_By_Name($query, ":resultados", $var_saida);
OCI_Execute($var_saida,OCI_DEFAULT);
while(OCI_FETCH($var_saida))
{
echo "".OCI_RESULT($var_saida, 'TVI')." - ".OCI_RESULT($var_saida, 'T')."";
}
var_dump($var_saida, ocierror());
echo "<br>";
echo "variavel de saida: ".$var_saida."";
OCI_Bind_By_Name($query, ":resultados", $var_saida);
OCI_Execute($var_saida,OCI_DEFAULT);
while(OCI_FETCH($var_saida))
{
echo "".OCI_RESULT($var_saida, 'TVI')." - ".OCI_RESULT($var_saida, 'T')."";
}
var_dump($var_saida, ocierror());
echo "<br>";
echo "variavel de saida: ".$var_saida."";
No entanto a variável de saída devolve null, verifiquei através do var_dump().
Poderia fazer a query diretamente na pagina e mostrar..já o fiz para testar e funciona perfeitamente mas não e esse o objetivo. Alguém que me consiga ajudar?