Detaillierte Erläuterung des PHP-Zugriffs auf die Instanz einer gespeicherten Oracle-Prozedur
Zum Beispiel enthält meine lokale Oracle-Datenbank ein Paket mit einer gespeicherten Prozedur:
create or replace package PKG_TRANS_REL is -- Author : test -- Created : -- Purpose : test -- Public type declarations PKG_NAME varchar2(20) := 'PKG_TRANS_REL'; --存储过程,测试用 procedure pro_GC_withdraw(in_merch_no in varchar2, in_withdraw_amt in number, out_result out number, out_errmsg out varchar2); end PKG_TRANS_REL;
Der Paketname ist PKG_TRANS_REL und die gespeicherte Prozedur ist pro_GC_withdraw. Diese gespeicherte Prozedur hat vier Parameter, zwei Eingabeparameter und zwei Ausgabeparameter.
Beispiel für den Aufruf von pdo in PHP:
$this->_pdo = new PDO(PDO_DB_DNS, PDO_DB_USER, PDO_DB_PASSWORD); $call = "CALL PKG_TRANS_REL.pro_GC_withdraw(?,?,?,?)"; 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('GBK','UTF-8',$msg); user_dump('SQL:'.$msg); return false; } ...
Der dritte Parameter von bindParam ist standardmäßig PDO::PARAM_STR, wenn er ein anderer ist Der Typ muss angegeben werden
Die Übergabe des Werts des Eingabeparameters ist relativ einfach, die Übergabe des Parameters ist jedoch etwas komplizierter und die Länge muss angegeben werden.
Weitere Beispiele für PHP-Zugriff auf gespeicherte Oracle-Prozeduren finden Sie auf der chinesischen PHP-Website für verwandte Artikel!