「PHP開発」PDOでOracle ストアドプロシージャを呼び出す方法

1.ストアドプロシージャ
create or replace package PKG_JITA_HU is
— Public type declarations
PKG_NAME varchar2(20) := 'PKG_JITA_HU’;
–ストアドプロシージャ
procedure proc_nonh(in_merch_no in varchar2,
in_withdraw_amt in number,
out_result out number,
out_errmsg out varchar2);
end PKG_JITA_HU;

2.pdoでストアドプロシージャを呼び出す
$this->_pdo = new PDO(PDO_DB_DNS, PDO_DB_USER, PDO_DB_PASSWORD);
$call = “CALL PKG_JITA_HU.proc_nonh(?,?,?,?)";
try{
$stmt = $this->_pdo->prepare($call);

$stmt->bindParam(1, $merch_no);
$stmt->bindParam(2, $amount, PDO::PARAM_INT);

$stmt->bindParam(3, $result, PDO::PARAM_INT, 4);
$stmt->bindParam(4, $error_msg, PDO::PARAM_STR, 64);

$stmt->execute();

}catch (PDOException $e)
{
$msg = 'SQL:’.$e->getMessage();
$msg = iconv('Shift_JIS’,’UTF-8′,$msg);
user_dump('SQL:’.$msg);
return false;
}

PHP

Posted by arkgame