ORACLE PL/SQL EĞİTİMİ
Oracle PL/SQL ile çalışırken cursor ile satır satır işlem büyük tablolarda saatler sürmesin. Package'lar bakımsız hale gelip "neden duruyor bilmiyoruz" durumuna düşmesin. Exception handler'lar hataları yutup sessizce gizlemesin. Bu eğitimin temel hedefi budur.
Aylarca proje proje toparlanan bilgi sistematik bir mimari yaklaşıma kavuşur. Yazılım geliştirici, DBA veya veri mühendisi olsun fark etmez. Her prosedürü ad-hoc yazmak yerine BULK COLLECT / FORALL ve package yapısıyla ilerlenir. Bakım süresi öngörülebilir, kod kalitesi tutarlı kalır. Resmi dokümantasyon için Oracle PL/SQL Language Reference birincil kaynaktır.
Katılımcı Profili
PL/SQL'i veri katmanı mimarisinin parçası olarak kullanmak isteyen profillere yöneliktir:
- Oracle Geliştiricileri: Stored procedure, function ve trigger ile veri katmanı kodu yazar
- Veritabanı Yöneticileri (DBA): Bakım, audit ve operasyon kodlarını PL/SQL ile üretir
- Veri Mühendisleri: ETL ve batch işlemlerde BULK COLLECT/FORALL kullanır
- Backend Geliştiriciler: Oracle üzerinden uygulama veri akışını kurar
- Raporlama Uzmanları: Materialized view ve PL/SQL paketleriyle rapor altyapısı hazırlar
Ön Gereklilikler
Bu temellerle gelen katılımcı eğitimde örneklere doğrudan uygulamalı geçer:
- SQL temellerine rahat hakimiyet (SELECT, JOIN, GROUP BY)
- İlişkisel veritabanı kavramlarına aşinalık
- Programlama mantığı: değişken, koşul, döngü, fonksiyon
- SQL Developer veya benzeri bir Oracle istemcisini kullanabilmek
- Hata ve istisna kavramına genel farkındalık
Süresi ve Tarihi
Süre: 3 gün. Bu süre standart program içindir; ek modüllere ve hedefe göre süre özelleştirilebilir.
Eğitim tarihleri ve saatleri, katılımcı grubunun uygunluğuna göre birlikte planlanır.
Kazanımlar
Eğitim sonunda PL/SQL ile yazım sistematik bir mimari disipline kavuşur:
- Anonymous, named ve package PL/SQL bloğunu doğru kurar
- Cursor (explicit, implicit, ref cursor) ile satır işleme yapar
- Exception handling ve PRAGMA EXCEPTION_INIT uygular
- Stored procedure, function ve package yazar
- BULK COLLECT ve FORALL ile batch işlem performansını artırır
- Trigger çeşitlerini (DML, instead of, compound) yerinde kullanır
- Collection (associative array, nested table, varray) yönetir
- AWR / ADDM raporlarıyla performans ipuçlarını okur
Oracle PL/SQL Eğitimi Konuları
1. Oracle Database Mimarisi
- Instance ve database ayrımı
- SGA, PGA, redo log, undo
- Tablespace, segment, extent
- Multitenant: CDB ve PDB
- Schema, user, role kavramları
2. PL/SQL Blok Yapısı
- Anonymous blok: DECLARE, BEGIN, EXCEPTION, END
- Named blok ve schema-bound nesne
- Veri tipleri: scalar, composite, reference, LOB
- %TYPE ve %ROWTYPE
- Kontrol akışı: IF, CASE, LOOP, WHILE, FOR
3. Cursor Yönetimi
- Implicit cursor ve SQL%ROWCOUNT, SQL%FOUND
- Explicit cursor: OPEN, FETCH, CLOSE
- Cursor FOR loop
- Parametreli cursor
- REF CURSOR ile dynamic sonuç döndürme
4. Exception Handling - EXCEPTION Bloğu ve Predefined Exceptions
- Predefined exception (NO_DATA_FOUND, TOO_MANY_ROWS)
- User-defined exception
- PRAGMA EXCEPTION_INIT ile ORA-hata bağlama
- SQLCODE, SQLERRM
- RAISE ve RAISE_APPLICATION_ERROR
5. Stored Procedure ve Function
- Procedure ve function yazımı
- IN, OUT, IN OUT parametreler
- Default parametre değeri
- NOCOPY hint
- DETERMINISTIC fonksiyon
6. Package
- Specification ve body ayrımı
- Public ve private nesne
- Initialization block
- Package state ve session davranışı
- Overloaded procedure ve function
7. Trigger - Row-Level ve Statement-Level
- DML trigger: BEFORE / AFTER / INSTEAD OF
- Statement vs row level trigger
- Compound trigger
- DDL ve database event trigger
- Trigger anti-pattern'leri
8. Collection ve Bulk İşlemler
- Associative array, nested table, varray
- BULK COLLECT ile batch okuma
- FORALL ile batch yazma
- LIMIT clause ile bellek kontrolü
- SAVE EXCEPTIONS
9. Dynamic SQL ve Native Dynamic SQL
- EXECUTE IMMEDIATE
- Bind variable ile güvenli dynamic SQL
- DBMS_SQL paketinin kullanımı
- Generic CRUD ve metadata sorguları
- SQL injection'a karşı önlemler
10. Performans ve Tanı
- EXPLAIN PLAN ve AUTOTRACE
- SQL trace ve TKPROF
- AWR ve ADDM raporu okuma
- V$ ve DBA_ veri sözlüğü
- Result cache ve function-based index
ORACLE PL/SQL EĞİTİMİ ile İlgili
Sıkça Sorulan Sorular ve Cevapları
T-SQL ile PL/SQL arasındaki temel fark nedir?
T-SQL Microsoft SQL Server'ın prosedürel dilidir; PL/SQL Oracle'ındır. Söz dizimi, exception modeli, package ve collection yaklaşımı farklıdır. Eğitim PL/SQL'e odaklanır; T-SQL bilgisi varsa transfer kolaydır.
BULK COLLECT ve FORALL ne işe yarar?
PL/SQL ile SQL motoru arasındaki context switch'i toplu yaparak büyük veri işlemlerini hızlandırır. Satır satır iterasyon yerine kullanılır; 10x-100x performans artışı sağlayabilir. Eğitimde örnekleriyle ölçülür.
Package yazmak neden önemli?
Package, public/private API, paylaşılan state ve overload yetenekleriyle PL/SQL'i mimari katmanda kullanmayı sağlar. Bakım kolaylığı ve performans (plan cache) açısından stored procedure'lere göre belirgin avantaj sunar.
AWR ve ADDM raporları kapsamda mı?
Evet. Performans ve tanı bölümünde AWR snapshot'larından top SQL, segment ve wait event çıkarımları gösterilir. ADDM önerilerini yorumlama ve PL/SQL kodu üzerinde aksiyona çevirme pratik yapılır.
Eğitim içeriğini ihtiyaçlarımıza göre özelleştirebilir misiniz?
Evet. Eğitim öncesinde ihtiyaç analizi yaparak içerik ve örnekleri kurumun hedeflerine göre uyarlıyoruz. Modüller eklenebilir, bazı başlıklar derinleştirilebilir veya sadeleştirilebilir.
Eğitim yeri, yöntemi ve sertifikasyon süreci nasıl ilerliyor?
Eğitim online (canlı) veya yerinde gerçekleştirilebilir; tarih ve saatleri katılımcı grubunun uygunluğuna göre planlıyoruz. Program sonunda katılım sertifikası verilir; talep edilirse ölçme-değerlendirme ve raporlama eklenebilir.



