Usando Stored Procedure

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"

br.php.net/mysqli