dayatdev/laravel-oracle-sequence

A Laravel package to handle Oracle SEQUENCE operations (auto NEXTVAL and sequence creation) easily.

Installs: 0

Dependents: 0

Suggesters: 0

Security: 0

Stars: 0

Watchers: 0

Forks: 0

Open Issues: 0

pkg:composer/dayatdev/laravel-oracle-sequence

dev-main 2025-11-10 02:54 UTC

This package is auto-updated.

Last update: 2025-12-14 09:16:27 UTC


README

Latest Version on Packagist Total Downloads

🔁 Library Laravel untuk menangani Oracle SEQUENCE seperti NEXTVAL / CURRVAL, agar tidak error setelah migrasi atau saat insert data tanpa auto increment bawaan.

Package ini memungkinkan kamu:

  • Membuat sequence otomatis jika belum ada di database Oracle.
  • Mengambil nilai berikut (NEXTVAL) dari sequence.
  • Integrasi langsung dengan Eloquent model via trait.
  • Gunakan pada project Laravel biasa tanpa konfigurasi tambahan yang rumit.

🧩 Requirements

Komponen Versi Minimum
PHP 8.1
Laravel 9.x, 10.x, 11.x
Database Oracle (tested on 12c, 19c)
PDO Driver pdo_oci atau yajra/laravel-oci8

⚙️ Installation

composer require dayatdev/laravel-oracle-sequence

Setup

//config/app.php
'providers' => [
    DayatDev\OracleSequence\OracleSequenceServiceProvider::class,
],
'aliases' => [
    'OracleSequence' => DayatDev\OracleSequence\Facades\OracleSequence::class,
],

Clear cache & autoload

php artisan config:clear
composer dump-autoload

Usage

  1. Mengambil next value dari sequence
use DayatDev\OracleSequence\Facades\OracleSequence;

$nextVal = OracleSequence::nextval('USER_SEQ');

echo $nextVal;

Jika sequence belum ada, package otomatis akan membuat:

CREATE SEQUENCE USER_SEQ START WITH 1 INCREMENT BY 1 NOCACHE;

2.Menggunakan pada Model Eloquent

namespace App\Models;

use Illuminate\Database\Eloquent\Model;
use DayatDev\OracleSequence\Traits\HasOracleSequence;

class Banner extends Model
{
    use HasOracleSequence;

    protected $table = 'banners';
    protected $primaryKey = 'id';
    public $incrementing = false; // wajib false jika bukan auto increment DB

    // opsional: override nama sequence
    protected string $sequenceName = 'BANNERS_SEQ';
}

3.Mengambil nilai sequence tanpa insert