Tenho uma procedure que tem um parâmetro de saída. Gostaria de exibir o resultado desse parâmetro após usa execução. Como faço para chamar essa procedure e exibir esse parametro de saída?Estou usando oracle.
Tenho uma procedure que tem um parâmetro de saída. Gostaria de exibir o resultado desse parâmetro após usa execução. Como faço para chamar essa procedure e exibir esse parametro de saída?Estou usando oracle.
Oi
Eu nunca usei mas lá vi bastante coisa relacionada.
Faça algo como o seguinte
//apenas executar
Yii::app()->db->createCommand('EXECUTE Stored_Procedure_Name')->execute();
ou
//executar e pegar o resultado
$command=Yii::app()->db->createCommand("call proc_new_form(:client_id, :query_id, @out)");
$command->execute(array('client_id'=>$clientID,'query_id'=>$queryID));
$resultado = Yii::app()->db->createCommand("select @out as result;")->queryScalar();
para referencia de uma olhada aqui
Oi Gustavo,
O comando abaixo não funcionou. Acredito que nao preciso do array com os parametros, pois nao informo nenhum parametro de entrada, entao retirei essse array. Quando ele tentar executar ocorre o erro
ORA-00936: expressao nao encontrada. Acho que ele nao entende o parametro @out, como saida.
$command=Yii::app()->db->createCommand("call proc_new_form(@out)");
$command->execute();
$resultado = Yii::app()->db->createCommand("select @out as result;")->queryScalar();
Ele não executa pois não reconhece o procedure.
vc deve substituir "proc_new_form" pelo nome da sua procedure
Tambem, esse codigo que usei de exemplo é de mysql, caso não funcione, vc deve adaptar pra trabalhar com o oracle
Eu usei o nome da minha procedure mesmo, só deixei como exemplo.
Olá Renata,
Eu tive um problema com Stored Procedures em Firebird usando Yii.
As class de conexão do Yii para o Firebird foi de terceiros, porém não funciono, tive que usar a funções nativa do PHP, para executar e retornar a resposta da Procedure.
Faça os teste com a Procedure correta.
o problema esta no PHP para Stored Procedure, no caso se for MySQL …tem que ver se o Yii usa o mysqli
"Extensão MySQL Melhorada"