Skip to content
Icon

WARNING You're browsing the documentation for an old version of LARAVEL-OCI8. Consider upgrading your project to laravel-oci8 9.0.

Oracle Function

Before running the PHP program, create a stored function in SQL*Plus or SQL Developer:

SQL

CREATE OR REPLACE FUNCTION myfunc(p IN NUMBER) RETURN NUMBER AS
BEGIN
RETURN p * 3;
END;

PHP

// via Query Builder
$result = DB::selectOne("select myfunc(2) as value from dual");
return $result->value; // prints 6
 
// via PDO
$pdo = DB::getPdo();
$x = 2;
 
$stmt = $pdo->prepare("begin :y := myfunc(:x); end;");
$stmt->bindParam(':y', $y);
$stmt->bindParam(':x', $x);
$stmt->execute();
 
return $y; // prints 6

With shortcut Method (https://github.com/yajra/laravel-oci8/pull/183/files)

 
$result = DB::executeFunction('function_name(:binding_1,:binding_n)', [':binding_1' => 'hi', ':binding_n' => 'bye'], PDO::PARAM_LOB)