VastbaseG100

基于openGauss内核开发的企业级关系型数据库。

Menu

存储过程

创建存储过程

创建存储过程和普通SQL的执行一致,调用数据库连接实例的exec()方法即可。

下面的例子展示了如何创建存储过程:

<?php
try {
$conn = new PDO(“pgsql:host=172.16.19.117;port=5432;dbname=vastbase”,”vbadmin”,”vbase@admin”);
$sql = " CREATE OR REPLACE PROCEDURE hzy.pro_test(a integer,inout b integer) AS begin b := a+b; end;";
$conn->exec($sql);
$conn = null;
} catch(Exception $e) {
  print $e->getMessage();
  die();
}
?>

调用存储过程

非预编译调用存储过程和执行普通SQL步骤一致,不再赘述;预编译调用存储过程和普通SQL的过程一致,区别在于设置占位符参数。需通过bindParam()方法设置占位符参数。第一个参数是占位符的索引位置,第二个参数是变量,若JDBC支持可获取到存储过程的输出值(经测试不支持),第三个参数是存储过程参数对应的类型。

下面的例子展示了如何调用存储过程:

<?php
try {
$conn = new PDO(“pgsql:host=172.16.19.117;port=5432;dbname=vastbase”,”vbadmin”,”vbase@admin”);
$stmt = $conn->prepare(“call hzy.pro_test(?,?));
$stmt->bindParam(1, $a, PDO::PARAM_INT);
$stmt->bindParam(2, $b, PDO::PARAM_INT);
$stmt->execute();
$conn = null;
} catch(Exception $e) {
  print $e->getMessage();
  die();
}
?>