Ana Menü

  • Ana sayfa
  • Teknoloji Haberleri
  • Haberler
  • Makaleler
  • Download
  • Forum Knite Online Koxp
  • İletişim


  • Donanım
  • Mühendislik
  • Network
  • Oyunlar
  • Programlama
  • Tasarım
  • Yazılım
  •  
    Haberler

  • ASUS, A6000N serisi yeni diz üstü bilgisayarlarını duyurdu
  • Türk Telekom'dan öğrencilere ADSL kampanyası
  • ASUS WL-HDD 2.5: Kablosuz Ağlar İçin Disk Paylaştırıcı
  • Virüs En İyi 10: Sober'in Hoş Olmayan Geri Dönüşü
  • Microsoft WINS Yamasını Hazırlıyor
  • Devlet Yazışmaları İnternete Taşınıyor
  • ISS'ler de ADSL Hizmeti Vermeye Başlıyor
  • Taşınabilir Video oynatıcılarda devrim DivX-POD 7010
  • Kablo Internet'te indirim oldu mu, olmadı mı ?
  • Mobil kablosuz foto yazıcısı: HP Photosmart 375
  • En küçük Pocket Pc Phone Qtek s100
  • Google, interneti yeniden tanımlıyor
  • Kitap yorumu: Dijital Kale
  • Fedora Core 3
  • Zarif ve işlevsel
  • RoboDemo 5
  • Ateşli internet tilkisi
  • Türkçe GPL Wiki Yazılımı : Wiksis
  • VII. Bilisim Haftasi Etkinlikleri
  • Teknohaber.NET TRT INT'de
  • MyDoom: Yeni sanal kurt eskilerini temizliyor
  • Google artık 1/3 daha fazla web sayfası arıyor
  • MSN Messenger’da virüs!
  • 2003’ün ‘most wanted’ sitesi; Kazaa
  • Mars Express, gezegene yaklaşıyor
  •  
    Linkler

  • Bilgisayar
  • Diğer
  • Geyik
  • Internet
  • Üniversiteler
  •  
    WinBaglama Özel
  • Hakkında
  • Nota Dosyaları
  • Download
  •  
    Teknohaber.Net

    Site hakkında
    Editörler

     
    Arama

     
    Sponsor
     
     
    İstatistik
    eXTReMe Tracker
     

    Perl ile Veritabanı Programlama

    Tarih: 07.04.2006 > Kaç kez okundu? 5380

    Unix ve Linux sistemler genelde text tabanli yönetildigi icin (telnet ya da rlogin) komut isteminde (shell) calistirabileceginiz perl tabanli “script” ler kullanmak cok pratiktir. Özellikle de zaten text dosya, log ya da benzer isler icin perl kullaniyorsaniz buna ek olarak veritabanina baglanip belarli sorgulari otomatik olarak calistirmak mümkün. Bir de rutin olarak ya da problemleri analiz etmek amaciyla yaptigimiz veritabani sorgulamalarini da sql arabirimi (sqlplus, dbaccees, mysql vs.) yerine bu sorgulari bir perl programina yaptirip daha güzel formatlamak daha pratik ve düzenlidir.





    Neden Perl ile Veritabanina baglanayim?

    Unix ve Linux sistemler genelde text tabanli yönetildigi icin (telnet ya da rlogin) komut isteminde (shell)  calistirabileceginiz perl tabanli “script” ler kullanmak cok pratiktir. Özellikle de zaten text dosya, log ya da benzer isler icin perl kullaniyorsaniz buna ek olarak veritabanina baglanip belarli sorgulari otomatik olarak calistirmak mümkün. Bir de rutin olarak ya da problemleri analiz etmek amaciyla yaptigimiz veritabani sorgulamalarini da sql arabirimi (sqlplus, dbaccees, mysql vs.) yerine bu sorgulari bir perl programina yaptirip daha güzel formatlamak daha pratik ve düzenlidir.

    Örnek kullanim sekilleri neler?

    Veritabaninda;
    -kullanicilarin listesi (test.pl)
    -tablespace lerin listesi ve bos alan miktari
    -extent sayilari
    -datafile larin listesi
    -temp kullanim orani
    -tablolari belarli formatta export etmek

    Bütün bunlari tabii ki grafik tabanli “Database management” (Enterprise manager, Toad vs.) sistemleriyle de yapabilirsiniz tabii ki ama yukarida da belirttigim gibi ufak ve rutin olarak yapilan isler cin perl kullanmak bircok avantaj getirecektir.

     

    Her bir kriter icin bir parametre tanimlayip tek bir perl programiyla yazilabilir. Temel olarak bütün DML (data manipulation language, select, delete, update vs.) ve DDL (data definition language, create, drop, alter vs.) ler calistirilabilir.

    Daha fazla teorik bilgi vermek yerine hemen kuruluma baslamakta yarar görüyorum.

    Perl programlama dilini az cok taniyanlar modül kavramina yabanci degillerdir. Bir veritabanina perl ile baglanmak icin en cok kullanilan modül DBI modülüdür ve bircok veritabanina baglanma imkani saglar ve veritabanindan bagimsizdir. Biz bu örnekte bir oracle veritabanina baglanacagiz. Diger veritabanlarina baglanmak da cok farkli degil.

    Bu yaziyi 2 bölüm halinde sunmak istiyorum. Bu bölümde daha cok kurulum ve temel ögelerden bahsedecegim. 2. bölümde ise daha cok kullanim alanlarina iliskin örnekler bulabileceksiniz.

    1. Gerekli Sistem, Modül ve Programlar

     

    Perl 5.6.1 (tavsiye edilen 5.8.X)
    Perl DBI-1.50
    Perl DBD-Oracle-1.17
    Oracle Database Server (8,9 ya da 10)
    Linux

    1. Kurulum

     

    Hangi isletim sistemlerinden baglanabilirim?
    Perl ve Oracle in destekledigi her türlü isletim sisteminden oracle a perl ile baglanmak mümkündür. Perl ün acik kaynak kodlu olmasindan dolayi en cok Linux sistemlerde kullanildigi bir gercek olmakla beraber cok yaygin olarak UNIX sistemlerde de kullanilmaktadir.

    Perl 5.6.1 (tavsiye edilen 5.8.x)
    Linux sisteminize „root“ kullanicisi ile giris yapin ve „perl –v“ komutunu calistirin, bu sekilde perl ün yüklü olup olmadigini , yüklüyse hangi versiyonun oldugunu ögrenmis olursunuz

    Perl sisteminizde yüklü ise “perl –v“ komutu su sekilde calisacaktir :

    lnxsrv:~# perl -v

    This is perl, v5.6.1 built for i386-linux

    Copyright 1987-2001, Larry Wall

    Perl may be copied only under the terms of either the Artistic License or the
    GNU General Public License, which may be found in the Perl 5 source kit.

    Complete documentation for Perl, including FAQ lists, should be found on
    this system using `man perl' or `perldoc perl'.  If you have access to the
    Internet, point your browser at http://www.perl.com/, the Perl Home Page.

    Eger perl yüklü degilse komut suna benzer sekilde hata verecektir :
    lnxsrv:/oracle# perl -v
    bash: perl: command not found
    lnxsrv:/oracle#

    Yüklemek icin Linux dagitiminiza uygun CD ya da paket türünden (rpm, deb, vs.) perl ü kurun (en az 5.6.1). Perl genelde bütün Linux sistemlerde standart kurulumla yüklenen paketlerin arasindadir.
    Oracle Client ya da Server in yüklü oldugundan emin olun. Yüklü degilse oracle kullanicisi olusturup kurlumu yapin.

    http://www.oracle.com/technology/software/products/oracle9i/htdocs/linuxsoft.html

     

    DBI ve DBD-Oracle

    Bu modülleri

    http://search.cpan.org/~timb/DBI-1.50/DBI.pm

    http://search.cpan.org/~pythian/DBD-Oracle/Oracle.pm

    sayfalarindaki linklerden ücretsiz indirip Linux sisteminizde /tmp ye  kopyalayin. Ilk olarak DBI-1.50.tar.gz dosyasini asagidaki komutlarla acip kurun :

    cd /tmp
    tar zxvf DBI-1.50.tar.gz
    cd DBI-1.50

    ÖNEMLI: README yi okumadan gecmeyin (genel kural)  J

    perl Makefile.PL
    make
    make test
    make install

    (Oracle in /oracle da kurlu oldugunu kabul edersek)
    export ORACLE_HOME=/oracle
    export LD_LIBRARY_PATH=$ORACLE_HOME/bin:$LD_LIBRARY_PATH
    export ORACLE_SID=oracle9
    export ORACLE_USERID=scott/tiger
    export PATH=$ORACLE_HOME/bin:$PATH

    “sqlplus $ORACLE_USERID” komutuyla basarili bir sekilde girip sorgu yapabiliyorsaniz bundan sonraki adimlar icin isinizi kolaylastiracaktir.
    Daha sonra DBD-Oracle modülünü kurun

    cd /tmp
    tar zxvf DBD-Oracle-1.17.tar.gz
    cd DBD-Oracle-1.17

    ÖNEMLI: README yi okumadan gecmeyin (genel kural)  J

    perl Makefile.PL
    make
    make test
    make install

     

    Bu komutlar sirasinda bazi hatalar almaniz normaldir, önemli olan bütün komutlarin sonuna kadar calisip calismadigidir. “make install” den sonra artik perl Oracle veritabanina baglanmaya hazir demektir. Hemen asagidaki kücük programla herseyin eksiksiz kuruldugundan emin olun (asagidaki kodu son satira kadar bir dosyanin icine kopyalayip kaydedin (test.pl).

    #!/usr/local/bin/perl -w

    use DBI;
    use DBD::Oracle;

    $userpass = 'system/manager';

    print "\n";
    print "Connecting to \"'dbi:Oracle:',$userpass\"........";
    $dbh = DBI->connect('dbi:Oracle:',$userpass) ||
    die "Error connecting $DBI::errstr\n";
    if ($dbh) {print "OK\n"};

     $sql="select USERNAME, USER_ID ,CREATED from dba_users";

      $sth = $dbh->prepare("$sql");
    $sth->execute();

       print"\n\n";
    print"USERNAME   USERID     CREATED\n";
    print"========== ========== ==========\n";
    while (@row = $sth->fetchrow_array()) {
    printf "%-10s %-10s %-10s\n", @row;
    }
    $sth->finish;
    $dbh->disconnect;

    # son satir

    1.sisteminize uygun user ve password girin
    2.”test.pl” connect string inde ORACLE_SID belirtilmedigi icin $ORACLE_SID gecerli olacaktir ($dbh = DBI->connect('dbi:Oracle:',$userpass), yani connect stringiniz $dbh = DBI->connect('dbi:Oracle:oracle9',$userpass) seklinde de olabilir.
    3.DBD-Oracle modülünün dökümantasyonunu yine asagidaki linkten bulabilirsiniz:

    http://search.cpan.org/~pythian/DBD-Oracle/Oracle.pm

     

    Dosyaya calistirilabilir hakki (chmod +x test.pl) verin. “test.pl” i calistirmadan önce ORACLE_HOME, ORACLE_SID, LD_LIBRARY_PATH ve PATH in (environment variables) dogru olup olmadigini control edin (örn. echo $ORACLE_SID, vs.)

    lnxsrv:/oracle# echo $ORACLE_SID
    sr4
    lnxsrv:/oracle#

    “test.pl” programinin ciktisi asagidakine benzer olacaktir :
    lnxsrv:/oracle# ./test.pl

    Connecting to "'dbi:Oracle:',system/manager"........OK

     

    USERNAME   USERID     CREATED
    ========== ========== ==========
    SYS        0          14-OCT-02
    SYSTEM     5          14-OCT-02
    OUTLN      11         14-OCT-02
    DBSNMP     16         14-OCT-02
    TRACESVR   19         14-OCT-02
    FORSMGR    20         15-OCT-02
    ODBC       21         15-OCT-02
    ATOSODBC   22         15-OCT-02
    lnxsrv:/oracle#

     

    Eger asagidakine benzer bir hata aliyorsaniz büyük ihtimalle DBD kurulumunuzda bir hata olusmustur :
    lnxsrv2:/tmp# ./test.pl
    Can't locate DBD/Oracle.pm in @INC (@INC contains: /usr/local/lib/perl/5.6.1 /usr/local/share/perl/5.6.1 /usr/lib/perl5 /usr/share/p
    erl5 /usr/lib/perl/5.6.1 /usr/share/perl/5.6.1 /usr/local/lib/site_perl .) at ./test.pl line 4.
    BEGIN failed--compilation aborted at ./test.pl line 4.
    lnxsrv2:/tmp#

    En kisa zamanda yazinin 2. bölümünde görüsmek üzere…

    Murat Yildiz
    Bilgisayar Müh.
    muratmy at hotmail.com






    Yorumlar

    Gönderen: SySt3Mc1x Tarih: 05:41 09.05.2006
    Tşk Güzel Bir Anlatım...

    Gönderen: Decoder Tarih: 12:52 26.06.2006
    guzel anlatım Teşekkürler..

    Gönderen: fatih kocaman Tarih: 12:31 31.10.2006
    super

    buy cheap online propecia
    ordering propecia
    buy viagra
    how to get viagra
    viagra dose
    viagra for women
    how does viagra work
    purchase propecia
    cialis philippines
    viagra label
    buy levitra online viagra
    canada online pharmacy propecia
    info viagra
    uk propecia sales
    cialis soft
    lowest price for propecia
    indian cialis
    generic viagra online
    viagra costs
    cialis 20 mg
    what is cialis
    professional cialis
    real cialis
    cialis daily
    canada viagra pharmacies scam
    viagra buy
    viagra canada
    how much is viagra
    buy viagra cialis levitra
    cialis arterial fibrillation
    order viagra
    real viagra pharmacy prescription
    mail order propecia
    price check 50mg viagra
    canadian pharmacy viagra legal
    brand viagra professional
    viagra cialis online sales
    canadian propecia rx
    purchase cialis
    levitra vs cialis
    lowest propecia prices
    viagra 100mg england
    cialis mastercard
    generic cialis sale
    viagra canadian pharmacy dosage
    buy discount viagra
    viagra tablet weight
    cialis no prescription
    cialis usa
    usa cialis sales
    cialis low price
    real viagra without prescription
    best price for propecia
    get propecia online pharmacy
    online pharmacy propecia
    should i chew cialis
    buy cialis canada
    cialis strenght mg
    buy mg propecia
    viagra in spain
    buy propecia uk
    viagra and cialis for sale
    cialis levitra sale viagra
    buy cheap uk viagra
    cialis express delivery
    generic propecia sale
    buy propecia online cheap pharmacy
    viagra online
    cialis price in canada
    buy cialis once daily
    order propecia pill
    woman and cialis
    cost of cialis
    cialis levitra
    brand name cialis overnight
    real viagra online
    cialis next day
    cialis buy on line
    cialis soft tablets
    viagra free
    discount drug propecia
    cialis sales uk
    buy cialis us
    cialis professional no prescription
    us cialis
    cialis fast delivery
    best price propecia
    best price generic propecia
    liquid propecia
    canadian generic viagra online
    buy viagra line
    purchase cialis us
    next day viagra
    cheap viagra online
    cialis 30 mg
    buy cialis fedex shipping
    canada viagra
    levitra viagra online
    viagra fast delivery
    purchase cialis cheap
    viagra prescription
    cialis price 100 mg
    combine cialis and levitra
    cialis endurance
    usa cialis
    cialis and ketoconazole
    viagra samples
    viagra prescriptions
    cialis canada
    china viagra
    canadian drugs propecia
    online propecia sales
    cialis no rx
    viagra pills
    cialis headaches
    viagra gel
    discount propecia propecia
    effects of cialis
    get cialis
    online prescription propecia
    get viagra fast
    canada viagra generic
    mexico viagra
    generic propecia viagra
    viagra next day delivery
    viagra perscription
    cialis herbal
    cialis for women
    buy online propecia
    low cost propecia
    low price cialis
    baldness male propecia
    viagra discount sale
    online propecia prescription
    best price for propecia online
    buying cialis online
    viagra in india
    order cheapest propecia online
    ordering viagra overnight delivery
    viagra non prescription
    pfizer soft viagra
    order propecia
    viagra for cheap
    generic cialis canadian
    viagra blister 4
    viagra lawyers
    best price on propecia
    propecia for hair loss
    viagra mexico
    cialis order

    Teknohaber.Net sitesi üzerinde özgür bir yazılım olan tekno.Portal isimli portal yönetim sistemi çalışmaktadır. Sitede bulunan yazılar kaynak gösterilerek yayınlanabilir. Yazıların sorumlulukları yazarlarına aittir. Her hakkı saklıdır, © 2001. google articles article