3 de nov de 2008

[POST RÁPIDO] Stored Procedures com Zend Framework

Vou precisar chamar umas procedures no Oracle (no meu caso), e andei dando uma olhada em como fazer com o Zend Framework.

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:

Marcio Ozório disse...

Cara, parabéns... procurei muito por isso na net e felizmente encontrei o seu post.

Foi muito útil pra mim, muito obrigado!!!!!!!