Vamos utilizar como exemplo a seguinte e simples procedure:
create or replace PROCEDURE sp_teste(nome in varchar2, retorno out varchar2)
IS
BEGIN
retorno := 'Seu nome: ' || nome;
return;
END;
Ela apenas recebe uma string e retorna outra.
E para executar a procedure via Zend Framework, podemos utilizar o seguinte código:
try{
// Configura a conexão
$dbConfig = array(
'dbname' => 'SeuTNSName',
'username' => 'SeuUsuario',
'password' => 'SuaSenha');
$db = Zend_Db::factory('Oracle', $dbConfig);
// Cria o statement para chamada da procedure
$stmt = $db->prepare("CALL SP_TESTE(:nome, :retorno)");
// Parâmetro nome para a procedure
$nome = 'Maykon';
$retorno = '';
$stmt->bindParam(':nome', $nome);
$stmt->bindParam(':retorno', $retorno, null, 40); // Variável que receberá o retorno
// Executa a procedure
$stmt->execute();
var_dump($nome);
var_dump($retorno);
} catch(Exception $e) {
echo $e->getMessage();
}
Simples não?
Um comentário:
Cara, parabéns... procurei muito por isso na net e felizmente encontrei o seu post.
Foi muito útil pra mim, muito obrigado!!!!!!!
Postar um comentário