![]()
WARNING You're browsing the documentation for an old version of LARAVEL-OCI8. Consider upgrading your project to laravel-oci8 12.0.
Oracle Stored Procedure
Before running the PHP program, create a stored procedure in SQL*Plus, SQL Developer or by migration:
Creating the Procedure with Plain SQL
CREATE OR REPLACE PROCEDURE myproc(p1 IN NUMBER, p2 OUT NUMBER) ASBEGIN    p2 := p1 * 2;END;
Creating the Procedure with migrations
/** * Run the migrations. * * @return void */public function up(){    $command = "        CREATE OR REPLACE PROCEDURE myproc(p1 IN NUMBER, p2 OUT NUMBER) AS        BEGIN            p2 := p1 * 2;        END;    ";     DB::connection()->getPdo()->exec($command);} /** * Reverse the migrations. * * @return void */public function down(){    $command = "DROP PROCEDURE myproc";    DB::connection()->getPdo()->exec($command);}
Running procedure the manual way
$pdo = DB::getPdo();$p1 = 8; $stmt = $pdo->prepare("begin myproc(:p1, :p2); end;");$stmt->bindParam(':p1', $p1, PDO::PARAM_INT);$stmt->bindParam(':p2', $p2, PDO::PARAM_INT);$stmt->execute(); return $p2; // prints 16
Running procedure with shortcut method
$procedureName = 'youpackagename.yourprocedurename'; $bindings = [    'user_id'  => $id,]; $result = DB::executeProcedure($procedureName, $bindings); dd($result);