ORACLE DA KÜRSÖRLER. Gerekli sistem değişkenleri



Benzer belgeler
Sorgudan elde edilen değerin değişkenlere aktarılmasını sağlar. Sorgudan tek satır dönmesi gerekir. Çok satır dönerse hata verir.

Sorgudan elde edilen değerin değişkenlere aktarılmasını sağlar. Sorgudan tek satır dönmesi gerekir, aksi durumda hata olur.

PostgreSQL ve PL/pgSQL

PostgreSQL ve PL/pgSQL

VERİ TABANI YÖNETİM SİSTEMLERİ II. 5. SQL PROGRAMLAMADA CURSOR (İMLEÇ) ve TRIGGERS (TETİKLEMELER)

Öğr. Gör. Cansu AYVAZ GÜVEN VERİTABANI-II. Değişken Tanımlama Ve Akış Kontrol Deyimleri

Öğr. Gör. Cansu AYVAZ GÜVEN VERİTABANI-II. Değişken Tanımlama Ve Akış Kontrol Deyimleri

8 Oracle da tablo yapısı içinde otomatik artan kolon yoktur. (identity kolon

T-SQL NEDİR? Microsoft T-SQL Transact-SQL

Kullanıcı tanımlı fonksiyonlar SQL2000 ile gelen özelliklerden biridir. Fonksiyonlar tek bir değer veya tablo döndürmek için kullanılır.

SQL PROGRAMLAMA. Bir batch, bir arada bulunan bir dizi SQL deyimidir. Batch ayıracı GO deyimidir.

Cursor. Bir veri tipi olarak da ele alınabilen Transact-SQL Sunucu Cursor şu aşamalardan geçirilerek kullanılır.

SQL TRIGGERS (Tetikleyiciler)

1. PL/SQL de kontrol yapıları

VERİ TABANI YÖNETİM SİSTEMLERİ II. 3. SQL PROGRAMLAMA BLOKLARI ve AKIŞ DENETİMİ

STORED PROCEDURE LER (Saklı Yordamlar)

KULLANICI TANIMLI FONKSİYONLAR

Oracle da kullanılan veri tipleri:

EXISTS VE NOT EXISTS fonksiyonları

SQL e Giriş. Uzm. Murat YAZICI

DĐNAMĐK ve STATĐK SQL KULLANMANIN PERFORMANSA ETKĐSĐ

KULLANICI TANIMLI FONKSİYONLAR (Devam)

KULLANICI TANIMLI FONKSİYONLAR (Devam)

Fonksiyonlar istenilen deger tipinde dönüs yapabilir. INT, VARCHAR deger döndürebileceğiniz gibi bir tablo da döndürebilirsiniz.

GÜZ YY. - MKT103 - GÖRSEL PROGRAMLAMA DERSİ - ARA SINAVI

Nesne Yönelimli Programlama

VERİ TABANI ve YÖNETİMİ

VERİ TABANI YÖNETİM SİSTEMLERİ II. 4. SQL PROGRAMLAMADA PROCEDURE ve FUNCTION

SQL'e Giriş. SELECT Deyimi. SQL Komutları. 1. DDL (Data Definition Language - Veri Tanımlama Dili)

«BM364» Veritabanı Uygulamaları

HSancak Nesne Tabanlı Programlama I Ders Notları

BLG4134 Görsel Programlama III. Öğr. Grv. Aybike ŞİMŞEK

UTL_FILE PERFORMANSI

SAKLI YORDAM (Stored Procedure) Sibel Somyürek

AOSB 2017 EĞİTİM PROGRAMI

-- işareti tek satırlık açıklamalarda kullanılır. Açıklama olarak yazılan satırın önüne konulması yeterlidir.

TESİ. indeks. söylenebilir?? bir ilişkidir d) Hiçbiri. veya somutlaştırılmış. düzeyidir? sağlayabilir? sına. d) Hepsi. olabilir? c) Verilerin d) Hepsi

Veritabanı. SQL (Structured Query Language)

VERİ TABANI YÖNETİM SİSTEMLERİ I

YAPISAL SORGULAMA DİLİ. BARIŞ ARIBURNU barisariburnu.com

Sınav tarihi : Süre : 60 dak. a) strstr b) strchr c) strcat d) strcpy e) strlen. a) b) d) e) 0

VERĐTABANI YÖNETĐM SĐSTEMLERĐ

Bir çeşit prosedür. Ancak bu prosedür kendiliğinden çalışır. Çalışması için tabloya veri eklemek, veri silmek, veri değiştirmek yeterlidir.

DÖNGÜLER BMÜ-111 ALGORİTMA VE PROGRAMLAMA-I YRD. DOÇ. DR. İLHAN AYDIN

Bölüm 10: PHP ile Veritabanı Uygulamaları

VERİ TABANI YÖNETİM SİSTEMLERİ II. 2. SQL PROGRAMLAMA, VERİ TİPLERİ ve DEĞİŞKENLER

Veri Tabanı Tasarım ve Yönetimi

Veri Tabanı Hafta Dersi

SQL veri tabalarına erişmek ve onları kullanmak için geliştirilmiş bir lisandır.

2- Total de 8000 byte yer tutup 4000 karakter olarak kullanabildiğimiz tip aşağıdakilerden hangisidir?

Bu işleçlerin dışında, aşağıda belirtilen karşılaştırma işleçlerinden de yararlanılır.

VERİ TABANI YÖNETİM SİSTEMLERİ I

SORGULAR. Öğr.Gör.Volkan Altıntaş

JAVA PROGRAMLAMA DİLİ ÖZELLİKLERİ

İLERİ VERİTABANI SİSTEMLERİ SUAT ÜSTKAN

MTK467 Nesneye Yönelik Programlama. Hafta 4 - Döngüler Zümra Kavafoğlu

ALGORİTMA VE PROGRAMLAMA I

VERİ TABANI YÖNETİM SİSTEMLERİ I

5. HAFTA KBT204 İNTERNET PROGRAMCILIĞI II. Öğr.Gör. Hakan YILMAZ.

SQL (Structured Query Language)

İNÖNÜ ÜNİVERSİTESİ MALATYA MESLEK YÜKSEKOKULU DERS TANITIM FORMU. Kredisi AKTS Eğitim Dili Tipi: Zorunlu/ Saat

TRIGGER. Trigger lar, tablo üzerinde tanımlanabilen ve bu tablo üzerinde bir işlem gerçekleştiğinde tetiklenen programlama ögeleridir.

Nesneler üzerinde değişiklik yapmak için kullanılır. Veri tabanındaki nesnelerin oluşturulabilmesi için CREATE komutu kullanılır.

VERİ TABANI YÖNETİM SİSTEMLERİ II

Yukarıdakilerden hangileri DML (Data Manipulation Language) ile gerçekleştirilir?

Basit SQL Sorguları Veritabanından verilerin SELECT cümleleri ile alınması işlemine sorgulama denir.

HB1002: ORACLE 10G VERĐTABANI PL/SQL ile PROGRAMLAMA (32 saat)

Uzaktan Eğitim Uygulama ve Araştırma Merkezi

SQL'e Giriş. SELECT Deyimi. SQL Komutları. Yardımcı Deyimler

VeriTabanı Uygulamaları

Bilgisayar Teknolojileri Bölümü Bilgisayar Programcılığı Programı. Öğr. Gör. Cansu AYVAZ GÜVEN

Pascalda oluşturulacak dosyalar değişkenler gibi programın başında tanımlanır.

k ise bir gerçek sayı olsun. Buna göre aşağıdaki işlemler Matlab da yapılabilir.

İNTERNET PROGRAMCILIĞI DERSİ ÇALIŞMA SORULARI

Data Programming SQL Language. Elbistan Meslek Yüksek Okulu Bahar Yarıyılı

Yukardaki gibi sonsuz döngülü programlara Ctrl+Break tuş takımı ile müdahale edilmesi gerekir, aksi halde program sonsuz döngüye girer.

Uygulamalar 4 IsMissing Fonksiyonlar ve Alt Programlar Prosedür Parametreleri Public Function f(x,y,optional t, Optional k) End Function 1.

Python Programlama Dili

İNTERNET PROGRAMLAMA 2 A S P. N E T. Marmara Teknik Bilimler MYO / Hafta 5 Veri Tabanı İşlemleri

Veritabanı Tasarımı. Alt Sorgu Temelleri

Öğr. Gör. Serkan AKSU 1

Sınav tarihi : Süre : 60 dak. a) ABCDE b) BCDE c) ABCD d) kod hatalı e) BCD

SQL Deyimleri. Öğr.Gör.Volkan ALTINTAŞ Volkanaltintas.com

BİLGİSAYAR PROGRAMLAMA DERSİ

=~ Metodu 92 Karakter Sınıfları 94 sub ve gsub metotları 101 Hızlı Tekrar 102 Kontrol Noktası 103 Düello 106 Sonraki Bölümde 109

ÜNİTE NESNE TABANLI PROGRAMLAMA I. Uzm. Orhan ÇELİKER VERİTABANI SORGULARI İÇİNDEKİLER HEDEFLER

Veritabanı Tasarımı. Introduction to the Oracle Academy

Dekleratif Programlama. Örnek : Aile Ağacı. SWI-Prolog. Prolog Dekleratif programlama dili

Anadolu Liselerine Öğretmen Atama İşleminin Nesneye Yönelimli Veritabanı Programlama Kullanılarak Gerçekleştirilmesi

SQL Komutları (2) Uzm. Murat YAZICI

Akıllı Kod Desteği. Şekil 1

ADO.NET. Öğr. Gör. Emine TUNÇEL Kırklareli Üniversitesi Pınarhisar Meslek Yüksekokulu

Veritabanına Uygulanması

JAVASCRIPT JAVASCRIPT DİLİ

Aşağıdaki tabloyu inceleyin. Sorgulama işlemlerini bu tabloya göre yapacağız.

SQL Stored Procedure

Uygulama İş Akış Kaydında Koşul Tanımlamaları

KISITLAMALAR (CONSTRAINT)

Elbistan Meslek Yüksek Okulu GÜZ Yarıyılı. Öğr. Gör. Murat KEÇECĠOĞLU

Kocaeli Üniversitesi C Bilgisayar Programlama Ara Sınavı Test Soruları

Transkript:

ORACLE DA KÜRSÖRLER Gerekli sistem değişkenleri SQL%ISOPEN : kürsör açıksa değeri true, kapalı ise değeri false SQL%ROWCOUNT : sql ile işlem gören kayıt sayısı bulunur. SQL%FOUND : sql işlemi sonucu, en az bir kayıt bulunursa değeri true, değilse false dur. SQL%NOTFOUND : sql sonucu hiçbir kayıt dönmez ise değeri true, döner ise değeri false dur. Genel kürsör kullanım kalıbı declare CURSOR kürsöradi IS selectdeyimi; kayıttipideğişken kürsöradi%rowtype; OPEN kürsöradi; LOOP FETCH kürsöradi INTO kayıttipideğişken; EXIT WHEN kürsöradi%notfound; Komutlar END LOOP; 1

CLOSE kürsöradi; Aşamaları metin olarak yazalım. 1 Kürsörü tanımla 2 Kürsörün her kayıtının aktarılacağı bir değişken tanımla 3 Kürsöürü aç 4 Döngü içinde, a. Bir sonraki kayıda git b. Son kayıda erişilmiş ise döngüden çık c. Kürsörden fayadalanacak kodları yaz 5 Kürsörü kapat Yukarıdaki kodda bulunan EXIT deyimini açıklayalım. EXIT deyimi döngüden çıkmayı sağlar. İki çeşit kullanımı vardır. EXIT veya EXIT WHEN koşul burada koşul doğru ise döngüden çıkılır. Tek başına EXIT kelimesi IF deyimi ile kullanılabilir. Yukarıdaki metindeki IF ile yazarsak.. 2

IF kürsöradi%notfound THEN EXIT END IF.. Örnek: Kürsörü kullanarak personel tablosundaki, personelin sicilno,ad, soyad ve maaş bilgisini yazdırınız. Çözüm: Oracle çözümü: declare cursor p_kursor is select * from personel; p_personel p_kursor%rowtype; open p_kursor; loop fetch p_kursor into p_personel; exit when p_kursor%notfound; dbms_output.put_line(p_personel.sicilno ' ' p_personel.ad ' ' p_personel.soyad ' ' p_personel.maas); end loop; close p_kursor; 3

sql server çözümü: declare p_kursor cursor for select sicilno,ad,soyad,maas from personel declare @sicilno char(10),@ad varchar(20),@soyad varchar(20),@maas money open p_kursor fetch next from p_kursor into @sicilno,@ad,@soyad,@maas while @@fetch_status=0 print @sicilno+' '+@ad+' '+@soyad+' '+str(@maas) fetch next from p_kursor into @sicilno,@ad,@soyad,@maas end close p_kursor deallocate p_kursor KULLANICI TANIMLI PAKETLER PL/SQL de pek çok hazır fonksiyon, prosedür vardır. Ayrıca belli amaçla bir araya getirilen komutlardan oluşan paketler vardır. Örneğin yazdırma amacıyla kullandığımız dbms_output bir pakettir ve bu paket içinde çeşitli prosedürler bulunur. Örneğin bu paketteki put_line prosedürü bir satırlık yazı yazar. Paketler, kullanıcılar tarafından da oluşturulabilir. Paketler ile nesne tabanlı programlama yapılabilir. Yani veri tabanına nesne yönelimli özellik verilebilir. Bu yapı sadece oracle da vardır. 4

Paket içinde prosedür, fonksiyon, değişken, kürsör gibi veritabanı nesneleri bulunabilir. Paketler iki kısımdan oluşur. İlk önce paketin tanımı yapılır. Bu tanımda sadece prosedürün ismi, fonksiyon ismi ve parametreleri ayrıca değişkenler bulunur. İkinci aşamada paketin gövdesi yazılır. Bu gövdede prosedür ve fonksiyorın içinde çalışan kodlar bulunur. Paket tanımı aşağıdaki gibi yapılır. create or replace package paketadi is tanımlamalar end paketadi; paketin gövde yapısı aşağıdaki gibidir. create or replace package body paketadi is gövde kodları, prosedür gövdeleri end paketadi; Örnek: 5

Paket tanımlaması yapalım create or replace package pkg_personel is procedure toplam_maas; procedure personel_maas(p_sicilno char); p_maas number(15,2); procedure personel_kayit(p_sicilno char); p_personel personel%rowtype; end pkg_personel; paket gövdesini yazalım. create or replace package body pkg_personel is procedure toplam_maas is select sum(maas) into p_maas from personel; procedure personel_maas(p_sicilno char) is select maas into p_maas from personel where sicilno=p_sicilno; procedure personel_kayit(p_sicilno char) is 6

select * into p_personel from personel where sicilno=p_sicilno; end pkg_personel; yukarıdaki paketi aşağıdaki örnekte kullanalım pkg_personel.toplam_maas; dbms_output.put_line(pkg_personel.p_maas); pkg_personel.personel_maas('2053'); dbms_output.put_line(pkg_personel.p_maas); pkg_personel.personel_kayit('2053'); dbms_output.put_line( pkg_personel.p_personel.ad ' ' pkg_personel.p_personel.soyad ' ' pkg_personel.p_personel.maas); 7