Skip to content

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' => 'hi', 'binding_n' => 'bye'], PDO::PARAM_LOB)

MyFunc shortcut method:

DB::executeFunction('myfunc', ['p' => 3], PDO::PARAM_INT)