PL/pgSQL SQL Yordamsal Dili



Benzer belgeler
PostgreSQL ve PL/pgSQL

PostgreSQL ve PL/pgSQL

Genel Kavramlar. Bilgisayar ortamında işlenebilecek durumda bulunan kayıtlar. Birbiri ile ilişkili veriler topluluğu ve veriler arası ilişkiler

Veritabanına Giriş. Oğuzhan Ceylan. 19 Eylül 2011

Veritabanlarına ve SQL'e Giriş. Devrim GÜNDÜZ. Teknoloji Destek Merkezi --

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

PROGRAMLAMAYA GİRİŞ DERS 2

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.

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.

POSTGRESQL'de İleri Seviyede Veri Kurtarma ve Yedekleme

VERİ TABANI ve YÖNETİMİ

YAPISAL SORGULAMA DİLİ (SQL)

SQL Komutları (2) Uzm. Murat YAZICI

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

SQL e Giriş. Uzm. Murat YAZICI

Veritabanı Yönetim Sistemleri (Veritabanı Tasarımı) SQL (Structured Query Language)

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

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

SAKLI YORDAM (Stored Procedure) Sibel Somyürek

Mysql Veritabanı Komutları

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

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

KULLANICI TANIMLI FONKSİYONLAR (Devam)

Veri Tabanı SQL Server ve Management Studio kurulum linkleri:

KULLANICI TANIMLI FONKSİYONLAR (Devam)

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

Üst Düzey Programlama

Oracle'dan PostgreSQL'e geçiş

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

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

20461C Querying Microsoft SQL Server Modül Seviye Belirleme Testi

Veritabanı. Ders 2 VERİTABANI

Veri Tabanı-I 9.Hafta

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

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

KULLANICI TANIMLI FONKSİYONLAR

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

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

BİL-142 Bilgisayar Programlama II

PostgreSQL Veritabanı Sunucusu Devrim GÜNDÜZ.

Bölüm 4: DDL Veri Tanımlama Dili

Veritabanı. SQL (Structured Query Language)

MOBİL UYGULAMA GELİŞTİRME

Oracle Database 11g: Introduction to SQL

1 RUBY HAKINDA 1 Ruby nin Gelişim Hikayesi 1 Neden Ruby? 1 Neden Bu Kadar Popüler? 2

«BM364» Veritabanı Uygulamaları

İngilizce'de Relational Database Management System (RDBMS) olarak ifade edilir.

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

Öğr. Gör. Musa AYDIN Fatih Sultan Mehmet Vakıf Üniversitesi

LINQ (Temel Kavramlar)

Öğr. Gör. Serkan AKSU 1

C Programlama Dilininin Basit Yapıları

Oracle da kullanılan veri tipleri:

Bil101 Bilgisayar Yazılımı I. M. Erdem ÇORAPÇIOĞLU Bilgisayar Yüksek Mühendisi

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

Ders Tanıtım Sunumu. Database Managegement II. Elbistan Meslek Yüksek Okulu Güz Yarıyılı. Öğr. Gör. Murat KEÇECĠOĞLU

ELIF KIOTZEOGLOU RESUL MURAD MERT PACOLARI

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

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

İnternet Programcılığı

VERİTABANI. SQL (Structured Query Language)

VERİTABANI Veritabanı Sorgulama

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

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

Veri Tabanı Programlamaya Giriş

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

Oracle'dan PostgreSQL'e geçiş

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

Maltepe Üniversitesi Bilgisayar Mühendisliği Bölümü Veri Tabanı ve Yönetimi (BİL 301)

Tablolar Arası İlşikiler ve Alan Özellikleri Siparis.musteri_no musteri.musteri_no Siparis.urun_kodu musteri.urun_kodu

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

Bilgisayar Uygulamaları. MySql

BASİT C PROGRAMLARI Öğr.Gör.Dr. Mahmut YALÇIN

2 PYTHON A GIRIŞ 13 PyCharm İle Python Projesi Oluşturma 15 Projenin Çalıştırılması 18 İlk Python Programımız 19 Açıklama Satırları 21

Laboratuvar 2 Tek Kayıt Fonksiyonları

BBS 514 YAPISAL PROGRAMLAMA (STRUCTURED PROGRAMMING)

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

Aşağıdaki şemaya dikkat edin. Sorgulamalarımızı genellikle bu şemaya göre yapacağız.

DAO İLE SQL KOMUTLARI. Sql komutlarını artık veri tabanında kullanmaktan başka çaremiz yok arkadaşlar. Şimdi bu sql derslerimize başlayalım.

EBE-368 Veri Tabanı Yönetim Sistemleri İlişkisel Model (The Relational Model)

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

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

SQL Kod ile Tablo Oluşturma

PHP'ye Giriş Türkiye PHP Grubu - Linux Şenlikleri PHP Eğitim / Tanıtım Seminerleri Ankara, 11 Mayıs 2006 Hidayet Doğan <hdogan@hido.

ENF102 TEMEL BİLGİSAYAR BİLİMLERİ VE C/ C++ PROGRAMLAMA DİLİ. Gazi Üniversitesi Mühendislik Fakültesi Bilgisayar Mühendisliği Bölümü

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

Yaptığımız web sitelerinin daha kullanışlı olması için veritabanı sistemleri ile bağlantı kurup ihtiyaca göre verileri okuyup yazmasını isteriz.

Tablolar Arası İlşikiler ve Alan Özellikleri. Şekil 1. Magaza veritabanının tabloları ve tablolar arasındaki ilişkiler

Veri Tabanı Tasarım ve Yönetimi

Javascript. 1) Notepad++ aşağıdaki kodları yazıp deneme.html olarak kaydedelim. 2) Biraz önceki sayfa sadece html kodların içeriyordu.

BİL-142 Bilgisayar Programlama II

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

ACCESS PLATFORMUNDA SQL

Kepware Veritabanı Ürünleri. Teknolojiye Genel Bir Bakış

ProFTPD FTP Sunucusu. Devrim GÜNDÜZ. TR.NET Sistem Destek Uzmanı.

Lambda İfadeleri (Lambda Expressions)

Microsoft SQL Server Sorgulama

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

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

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

Transkript:

PL/pgSQL SQL Yordamsal Dili Devrim GÜNDÜZ devrim@gunduz.org devrim@postgresql.org Teknoloji Destek Merkezi http://www.tdmsoft.com http://seminer.linux.org.tr http://www.gunduz.org/seminer/plpgsql Bu sunu, herhangi bir izne gerek olmadan istenilen şekilde kullanılabilir. (Kopyalama hakkı en-gel-le-ne-mez! :-) )

Linux Kullanıcıları Derneği Seminerleri Seminer programı, seminer notları ve ayrıntılı bilgiler için; http://seminer.linux.org.tr adresini ziyaret edebilirsiniz.

Linux Kullanıcıları Derneği 3. Linux ve Özgür Yazılım Şenliği Geçmiş şenlikler 13-16 Mayıs 2004 Ankara Milli Kütüphane, Eğitim seminerleri, yılın penguenleri, oyun turnuvası, hazine avı... Konaklama ve ulaşım imkanları http://senlik.linux.org.tr senlik@linux.org.tr

PostgreSQL nedir? PostgreSQL, veritabanları için relational modeli kullanan ve SQL standart sorgu dilini destekleyen bir veritabanı yönetim sistemidir. PostgreSQL aynı zamanda iyi performans veren, güvenli ve geniş özellikleri olan bir DBMS tir. Hemen hemen tüm UNIX ya da Unix türevi (Linux, FreeBSD gibi) işletim sistemlerinde çalışır. Ayrıca NT çekirdekli tüm Windows sistemlerde de çalıştırılabilir. Tabii ki ücretsiz ve açık kodludur. Kaynak: http://www.postgresql.org

Kimler kullanıyor? Türkiye deki belli başlı üniversiteler Tübitak UEKAE (Ulusal Elektronik ve Kriptoloji Araştırma Enstitüsü) Malatya İnönü Üniversitesi Turgut Özal Tıp Merkezi www.begendim.com.info ve.org alan adları (www.afilias.com) http://www.sciencetunnel.com Cisco BASF Red Hat Chrysler 3Com USDA, FDA, ve University of California...

Yordamsal Dil Kavramı (Procedural Languages) Yordamsal dilleri, kurumsal veritabanlarda, SQL sorgulama dilin yetersiz kaldığı işlemler için kullanılmaktadır. SQL dili, veriyi sorgulayıp analiz etmek için en uygundur. Veri izerinde adım adım işleme, veriye erişimi kısıtlama, veriye erişimi sistematik hale getirmek gibi işlemler için kullanılmaktadır.

Yordamsal Dillerin Kullanım Alanları Bir tabloyu satır satır tarayıp, bazı satırları değiştirmek gereksinimi varsa, bu işlem istemci tarafından yazılmış bir programla yapıldığında, her satır için sunucu-istemci veri alışverişi yapılmaktadır. Yordamsal dil ile yapıldığında ise sunucu tarafında daha hızlı bir biçimde yapılabilmetedir. Bir tabloya bağlı yordamsal dili ile yazılmış tetikleyici, tabloya veri eklenmeden ya da değiştirilmeden önce gereken tetkik ve değişiklikleri yapmak için kullanılmaktadır.

Yordamsal Dillerin Kullanım Alanları Bir tablonun bazı kolınlarına erişimini engellemek için kullanıcıya doğrudan veri sorgulama etkisi verilmeyip, yordamsal dille yazılmış bir fonksiyon ile yapılmaktadır. Veritabana, sorgularda kullanılmak üzere, yordamsal dili ile yazılmış yeni fonksiyonlar eklemektedir. Bu fonksiyonlar hem satır bazlı (substr, upper, lower gibi) hem de aggregate (max, min, sum, avg, count gibi) olabilir.

Oracle PL/SQL PL/SQL Nedir? Yapısal dillere ait özelliklerin standart SQL'e eklenmesi Ada dili örnek alınarak tasarlanmıştır.

PL/SQL'e benzer Yüklenebilir bir dil PL/pgSQL nedir? SQL sorgularının ve programatik ifadelerin birlikte Bir veritabanı sunucusunda kullanılması Uzak bir yerden verinin sürekli olarak veritabanından istenmesi Üstünde mantıksal işlemler yapmak isteyen istemci uygulamaları tarafından oluşturulan ağ ve iletişim yüklerinin gruplanması

PL/pgSQL'in Özellikleri PL/pg SQL : PL/pgSQL kodunuz içinden direk olarak SQL dilini kullanabileceğinizi belirtir. PL/pgSQL içinden SQL kullanımı, programlarınızın gücünü, esnekliğini ve başarımını (performans) arttırır. Bir PL/pgSQL kod bloğunda çoklu SQL ifadeleri çalıştırılırsa, bu ifadeler tek bir seferde çalışır; bu, tek bir ifadenin işlenmesinden farklıdır. Taşınabilirdir: Fonksiyonları, PostgreSQL Veritabanı Sunucusu nun çalıştığı tüm platformlarda kullanılabilir.

PL/pgSQL ile neler yapılabilir? PL/pgSQL kodu ile : PostgreSQL in tüm veri tiplerine Operatörlerine Fonksiyonlarına ulaşabilirsiniz.

PL/pgSQL'i veritabanına yüklemek Programlama dilleri, veritabanları tarafından ancak bir veritabanı nesnesi olarak yaratıldığında kullanılabilir. Dolayısıyla, PL/pgSQL i kullanmadan önce onu veritabanınıza yüklemelisiniz (ön tanımlı olaraktan sisteminize PL/pgSQL kuruludur).

PL/pgSQL'i veritabanına yüklemek Komut satırı: createlang İstemci uygulaması ile: CREATE FUNCTION call_handler gereksinimi template1 veritabanına PL/pgSQL yüklenmesi

Createlang ile PL/pgSQL yüklenmesi Basit kullanım call_handler dil yaratılması komut tarafından halledilir. createlang plpgsql tdmtest; -U, -h gibi parametreler

CREATE LANGUAGE ile PL/pgSQL yüklenmesi CREATE FUNCTION ile call_handler yaratılmalıdır: CREATE FUNCTION plpgsql_call_handler( RETURNS OPAQUE AS '/postgres_library_path/plpgsql.so' LANGUAGE 'C' /usr/lib/pgsql/plpgsql.so - > RPM kurulumu /usr/local/pgsql/lib/plpgsql.so -> Kaynak kod kurulumu

CREATE LANGUAGE ile PL/pgSQL yüklenmesi tdmtest=# CREATE FUNCTION plpgsql_call_handler () tdmtest-# RETURNS OPAQUE tdmtest-# AS '/usr/local/pgsql/lib/plpgsql.so' tdmtest-# LANGUAGE 'C'; CREATE tdmtest=# CREATE LANGUAGE 'plpgsql' HANDLER plpgsql_call_handler LANCOMPILER 'PL/pgSQL'; WARNING: changing return type of function plpgsql_call_handler from "opaque" to "language_handler" CREATE LANGUAGE

CREATE LANGUAGE ile PL/pgSQL yüklenmesi HANDLER anahtar sözcüğünü takip eden ad, call handler ın yaratıldığı zaman kullanılan ad ile aynı olmalıdır. plpgsql_call_handler adıyla bir call handler yaratıldığı için, son işlemde de aynı ad kullanılmıştır. LANCOMPILER anahtar kelimesini takip eden kısım PostgreSQL 7.1.x ve sonrası için gerekli bir bölümdür. Genelde, dili tanımlamak için yorum alanı olarak kullanılır.

Basit yapı PL/pgSQL Dil Yapısı Kodun her bir bölümü bir fonksiyon olarak çalışması için tasarlanmıştır. C diline benzer yapı Kodun fonksiyonlarla yazılması Değişkenlerin kullanılmadan önce declare edilmesi Büyük-küçük harfe duyarlı değil. '' işareti

PL/pgSQL'de kod blokları Block structured code CREATE FUNCTION içine girilir. Fonksiyon adı ve argüman tipleri Ana blok Declaration Begin...

Declaration PL/pgSQL'de kod blokları DECLARE DECLARE anahtar sözcüğü Seçimsel ilk değerler Değişkenin adı ve tipi Noktalı virgül ile bitiş

Ana gövde PL/pgSQL'de kod blokları BEGIN - END BEGIN anahtar sözcüğü RETURN Bütün alt bloklar END'den önce sonlanmalıdır.

PL/pgSQL kod bloğunun örnek yapısı CREATE FUNCTION identifier (arguments) RETURNS type AS ' DECLARE declaration; [...] BEGIN statement; [...] END; ' LANGUAGE 'plpgsql';

Alt bloklar (sub-blocks) PL/pgSQL kod bloğu sınırsız sayıda alt blok (sub-block) içerebilir. Alt bloklar, normal bloklarla aynı şekilde okunur ve yorumlanırlar; dolayısıyla onlar da kendi içlerinde alt blok içerebilirler...

Alt bloklar (sub-blocks) Alt bloklar büyük PL/pgSQL fonksiyonlarının düzenlenmesinde yardımcı olmaktadır. Tüm alt bloklar normal blok yapısını kullanırlar; yani DECLARE anahtar sözcüğü ile başlayıp BEGIN ile devam ederler; ifadelerin olduğu kısımdan sonra da END anahtar kelimesi ile biterler.

PL/pgSQL'de Yorumlar (Comments) İki yol - Tek satırlı yorumlar - Blok yorumlar (çok satırlı yorumlar) Programlama dillerinin yorum yapısına benzerler.

PL/pgSQL'de Yorumlar (Comments) Tek satırlı yorumlar Yorum satırı yazmanın ilk yöntemi tek satırlı olanlardır. Tek satırlı yorumlar iki çizgi ile ( -- ) başlarlar. Satır sonu karakteri barındırmazlar. Örnek: -- Bu satır, tek satırlı yorum olarak işlenir.

PL/pgSQL'de Yorumlar (Comments) Blok yorumlar Blok yorumlar /* ile başlarlar. Birden fazla satır içerirler. */ ile biterler. /* * Bu bir * blok yorum * örneğidir. */

PL/pgSQL'de Yorumlar Tek satırlı yorumlar blok yorumlar içinde kullanılabilirler; ancak blok yorumlar başka blok yorumlar içinde kullanılamazlar.

İfadeler ve Expression (Statements and Expressions) PL/pgSQL kodu ifadeler ve tanımlardan oluşur. Ağırlık ifadelerdir. Diğer programlama dillerine benzerler.

PL/pgSQL'de ifadeler İfadeler PL/pgSQL kodu içinde işlemler yaparlar: Değişkene bir değer atanması Bir sorgunun çalıştırılması... Her ifade ; işareti ile biter.

PL/pgSQL'de Expression Expressionlar, PostgreSQL'in temel veri tiplerinden birini sonucu olarak geri döndüren işlemler ve hesaplamalardır. Örnek: a:=b+c; b ve c değişkenlerini toplar ve bunu a değişkenine atar.

PL/pgSQL'de Expression - Örnek CREATE FUNCTION bir_fonksiyon () RETURNS int4 AS ' DECLARE bir_tamsayi int4; BEGIN bir_tamsayi := 10 * 10; RETURN bir_tamsayi; END; ' LANGUAGE 'plpgsql';

PL/pgSQL'de Expression - Örnek tdmtest=# SELECT bir_fonksiyon() AS sonuc; sonuc ------- 100 (1 row)

Dinamik Sorgular Dinamik sorgular (EXECUTE anahtar kelimesi ile çalıştırılan SQL sorguları) dışında, bir fonksiyondaki tüm PL/pgSQL expressionları PostgreSQL backendinin yaşama süresi içinde sadece bir kez prepare edilir.

Dinamik Sorgular Bu nedenle sabit değerler (now ve current timestamp sabitleri, sabint değişkenler değil) PL/pgSQL expressionları bir kez prepare edilir. Bu da run-time anında alınması gereken değerler içeren kodların sorun yaşamasına neden olur. Sorunun çözümü, PL/pgSQL 'in sabit timestamp değerleri fonksiyonun çalışma anında almasını sağlamaktır:

Dinamik Sorgular Örnek CREATE FUNCTION add_shipment (integer, text) RETURNS timestamp AS ' DECLARE -- Fonksiyon argumanları için alias declare bolumu musteri_no ALIAS FOR $1; isbn ALIAS FOR $2;

Dinamik Sorgular Örnek -- Declare a variable to hold the shipment ID number -- and the current time. shipment_id INTEGER; right_now timestamp;

Dinamik Sorgular Örnek BEGIN -- Set the current time variable to the string ''now''. right_now := ''now''; -- Order the existing shipments by their ID numbers, beginning -- with the highest number, then insert the first ID number into -- the shipment_id variable. SELECT INTO shipment_id id FROM shipments ORDER BY id DESC;

Dinamik Sorgular Örnek -- Add one to the shipment_id variable. shipment_id := shipment_id + 1 /* Insert a shipment record into the shipments table. The right_now variable will be typecast to a timestamp at run-time, causing constant value now to be interpreted as the timestamp each time the function is run. */ INSERT INTO shipments VALUES ( shipment_id, customer_id, isbn, right_now );

Dinamik Sorgular Örnek -- Return a timestamp using the constant value now. RETURN right_now; END; ' LANGUAGE 'plpgsql';

PL/pgSQL'de değişken kullanımı PL/pgSQL'de değişken kullanımı Düzenlenebilecek verilerin açıkça belirtilmiş veri tipinde saklanması DECLARE anahtar kelimesinden sonra belirtilirler. Ön tanımlı değer belirtilebilir. Aksi taktirde NULL FOR döngüsündeki değerin istinası

PL/pgSQL'de değişken kullanımı : Veri Tipleri Herhangi bir SQL standart veri tipinde gösterilebilirler: CHAR, INTEGER, BOOLEAN, DATE, vb. Ek olarak, RECORD veri tipi Verinin değişkene 'girildiği' zamanki kolonları belirtmeden satır bilgisini tutmak için tasarlanmıştır.

PL/pgSQL'de değişken kullanımı : Tanımlama (declaration) Değişkenlerin PL/pgSQL kod bloğunun içinde kullanılabilmesi için, kod bloğunun başında DECLARE anahtar kelimesinden sonra belirtilmesi gerekmektedir. Tüm alt bloklarda geçerlidir. Alt bloklardaki değişkenler o alt bloğun tamamlanması ile sıfırlanırlar.

PL/pgSQL'de değişken kullanımı : Örnek CREATE FUNCTION identifier (arguments) RETURNS type AS ' DECLARE -- Declare an integer.* subject_id INTEGER; -- Declare a variable length character. book_title VARCHAR(10); -- Declare a floating point number. book_price FLOAT;

PL/pgSQL'de değişken kullanımı : BEGIN ifadeler END; ' LANGUAGE 'plpgsql' Örnek (devam)

PL/pgSQL'de değişken kullanımı : Ek bilgiler CONSTANT anahtar kelimesi Sabit değer belirtir. NOT NULL anahtar kelimesi Değişkenin NULL olamayacağını belirtir. DEFAULT anahtar kelimesi Değişkene ön tanımlı bir değer atar. değişken adı [ CONSTANT ] veri_tipi [ NOT NULL ] [ { DEFAULT := } değer ];

PL/pgSQL'de değişken kullanımı : Değişken tanımlama CREATE FUNCTION example_function () RETURNS text AS ' DECLARE -- Declare a constant integer with a -- default value of 5. five CONSTANT INTEGER := 5; -- Declare an integer with a default -- value of 100 that cannot be NULL. ten INTEGER NOT NULL := 10;

PL/pgSQL'de değişken kullanımı : Değişken tanımlama -- Declare a character with -- a default value of "a". letter CHAR DEFAULT ''a''; BEGIN return letter; END; ' LANGUAGE 'plpgsql';

PL/pgSQL'de değişken kullanımı : Değer Atama DECLARE bölümünde yapılır. := işareti kullanılır (assignment operator)

PL/pgSQL'de değişken kullanımı : Değer Atama Örneği CREATE FUNCTION identifier (arguments) RETURNS type AS ' DECLARE an_integer int4 := 10; BEGIN statement; [...] END; ' LANGUAGE 'plpgsql';

Kaynaklar http://www.postgresql.org http://advocacy.postgresql.org http://techdocs.postgresql.org http://www.commandprompt.com http://www.postgresql.org/docs http://developer.postgresql.org

Kaynaklar http://www.pgsql.com/ http://foundries.sourceforge.net/databases http://gborg.postgresql.org www.wrox.com - Beginning Databases with PostgreSQL, 2001

E-Posta Listeleri linux-programlama@liste.linux.org.tr Veritabanları için tartışma listesi (üye olmak için, http://liste.linux.org.tr web arayüzünü kullanabilirsiniz.) pgsql-tr-genel@postgresql.org (PostgreSQL Türkiye E-Posta Listesi. PostgreSQL üzerinde her türlü konu konuşulabilmektedir.)

PL/pgSQL SQL Yordamsal Dili Devrim GÜNDÜZ devrim@gunduz.org devrim@postgresql.org Teknoloji Destek Merkezi http://www.tdmsoft.com http://seminer.linux.org.tr http://www.gunduz.org/seminer/plpgsql Bu sunu, herhangi bir izne gerek olmadan istenilen şekilde kullanılabilir. (Kopyalama hakkı en-gel-le-ne-mez! :-) )