Detaillierte Erläuterung des PHP-Zugriffs auf die Instanz einer gespeicherten Oracle-Prozedur

高洛峰
Freigeben: 2023-03-04 18:00:02
Original
1070 Leute haben es durchsucht

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;
Nach dem Login kopieren

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;
  }
 
  ...
Nach dem Login kopieren

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!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!