yajra/laravel-oci8
Oracle database driver for Laravel using the PHP OCI8 extension. Adds an Illuminate/Database-compatible Oracle connection, query builder and schema support, with versioned releases matching Laravel versions and optional PHPStan/Larastan stubs for OCI8-specific DB methods.
Pros:
Illuminate\Database core, maintaining consistency with Eloquent, Query Builder, and Migrations. Supports Laravel 5.1–13.x, ensuring backward/forward compatibility.identity columns for 12c+, JSON read-only support for 12c02+, dynamic configuration, and schema prefixing).rownum vs. fetch/offset, and pagination workarounds) transparently.Cons:
identity columns are gated by Oracle version (e.g., 12c02+ for JSON, 12c+ for identity). Misconfiguration may lead to SQL errors.AUTO_INCREMENT (replaced by sequences/triggers) introduces complexity in migrations (e.g., drop if exists issues, trigger prefixing).DB::connection('oracle')).pecl install oci8). Docker/CI environments may need additional configuration.DB_LOAD_BALANCE for clusters)..env adjustments (e.g., DB_USERNAME must match the Oracle schema exactly).LIMIT/OFFSET syntax (Oracle uses rownum or fetch first for 12c+).order, user) requiring quoting.SELECT *) or missing indexes may degrade performance. Oracle’s cost-based optimizer behaves differently than other DBs.php artisan db:show) and Oracle-specific validation (e.g., DB_SERVER_VERSION in .env).DB::enableQueryLog()) to debug SQL generation.php -m | grep oci8).identity columns).DB_LOAD_BALANCE), but clustering adds complexity.schemaowner_)? The package supports DB_SCHEMA_PREFIX but may require adjustments for existing migrations.array bind for INSERT ALL)?rownum vs. LIMIT behavior.DB_USERNAME/DB_PASSWORD) or external auth (e.g., LDAP)? The Oracle user provider helps with case sensitivity but may need extension for custom auth.ENUM types, UUID generation)?increment() vs. identity())?rownum for pagination, binary ci for case-insensitive LIKE).identity columns for 12c+, drop if exists syntax).php artisan migrate, php artisan db:show).NUMBER vs. DECIMAL precision.extension=oci8 in php.ini).pecl install oci8 and enable in php.ini.instantclient for Docker).php -m | grep oci8 and test with oci_connect().composer.json to require yajra/laravel-oci8:^13.composer install.config/app.php (optional for Laravel 5.5+).php artisan vendor:publish --tag=oracle..env with Oracle credentials (e.g., DB_CONNECTION=oracle, DB_SERVICE_NAME=orcl).DB_SERVER_VERSION (e.g., 12c, 21c) to enable version-specific features.rownum/fetch behavior aligns with expectations.How can I help you explore Laravel packages today?