HERSEY BURDA
Would you like to react to this message? Create an account in a few clicks or log in to continue.

HERSEY BURDA

HERSEYİ BULABİLDECEĞİN TEK ADRES
 
AnasayfaLatest imagesAramaKayıt OlGiriş yap
Arama
 
 

Sonuç :
 
Rechercher çıkıntı araştırma
En son konular
» free slot machines win cash
Perl ile Veritabanı Programlama Icon_minitimeÇarş. Ağus. 03, 2011 3:57 am tarafından Misafir

» watch naruto hentai watch naruto hentai free
Perl ile Veritabanı Programlama Icon_minitimeÇarş. Ağus. 03, 2011 3:52 am tarafından Misafir

» major fish oil
Perl ile Veritabanı Programlama Icon_minitimeSalı Ağus. 02, 2011 10:26 pm tarafından Misafir

» hentai about hentai academy
Perl ile Veritabanı Programlama Icon_minitimeSalı Ağus. 02, 2011 10:10 am tarafından Misafir

» гинекология ответы
Perl ile Veritabanı Programlama Icon_minitimePtsi Ağus. 01, 2011 9:18 am tarafından Misafir

» x-Hack hack you
Perl ile Veritabanı Programlama Icon_minitimePtsi Ağus. 01, 2011 8:00 am tarafından Misafir

» When the first Whirlpool Duet album was released in December 2001
Perl ile Veritabanı Programlama Icon_minitimePtsi Ağus. 01, 2011 3:05 am tarafından Misafir

» women at work hentai online women at work hentai stream
Perl ile Veritabanı Programlama Icon_minitimePtsi Ağus. 01, 2011 2:56 am tarafından Misafir

» facebook likes xb
Perl ile Veritabanı Programlama Icon_minitimePaz Tem. 31, 2011 9:22 am tarafından Misafir

Tarıyıcı
 Kapı
 Indeks
 Üye Listesi
 Profil
 SSS
 Arama
Forum
HABERLER
Fikri Türkel köşe yazıları

 

 Perl ile Veritabanı Programlama

Aşağa gitmek 
YazarMesaj
Admin
Admin



Mesaj Sayısı : 3361
KULLANICI PUANLARI : 9918
Kayıt tarihi : 16/05/10

Perl ile Veritabanı Programlama Empty
MesajKonu: Perl ile Veritabanı Programlama   Perl ile Veritabanı Programlama Icon_minitimeSalı Haz. 29, 2010 4:22 pm

Perl ile Veritabanı Programlama

Tarih: 07.04.2006 > Kaç kez okundu? 5160
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.

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

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
Sayfa başına dön Aşağa gitmek
http://dessas.yetkinforum.com
 
Perl ile Veritabanı Programlama
Sayfa başına dön 
1 sayfadaki 1 sayfası
 Similar topics
-
»  Access Veritabani
» Veritabanı Seçimi
» Delphi İle Veritabanı (Paradox) Videolu
» Java Dersleri 17 – JDBC API (Veritabanı Bağlantısı)
» C/C++ ile Programlama

Bu forumun müsaadesi var:Bu forumdaki mesajlara cevap veremezsiniz
HERSEY BURDA :: SORU - CEVAP - EN EŞKİ SÖZLÜK :: TEKNOLOJİ - İNTERNET-
Buraya geçin: