dersblog

Ubuntu'dan Oracle'a Baglanmak

Şu sayfadaki tarif takip edilebilir

https://help.ubuntu.com/community/Oracle%20Instant%20Client

Şu adrese girilir ve bağlanan sisteme tekabül eden bağlantı tıklanır

http://www.oracle.com/technetwork/database/features/instant-client/index-097480.html

Bizim için bu Linux x86-64 idi mesela. Buradaki listelenen şeyler içinde Basic, SQL*Plus, JDBC Supplement için gösterilen rpm indirilir. "Lisans Kabulü" için en üst soldaki radyo düğmesinin seçilmiş olması gerekiyor.

Bu noktada Oracle sitesi "üyelik" şartını arar, email, sıfre vs verip üyelik yapılır, konfirmasyon email'ine cevap verildikten sonra üstteki rpm dosyaları indirilecektir.

Sonra

apt-get install alien

kurulur ve

sudo alien -i oracle-instantclient11.2-*

ile indirilen dosyalar kurulur. Eğer paylaşılan kütüphane (shared library, so) hataları var ise, .başhrç içine

export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/lib/oracle/11.2/client64/lib

yazınız. Bir kere sudo ldconfig yapmanız da gerekebilir. Ayrıca

sudo apt-get install libaio1

Bundan sonra sqlplus64 isleyecektir. Simdi makina, db isimlerini nasil tanimlayacagimiza gelelim.

sudo mkdir /etc/oracle

ve bu dizinde

sudo gedit /etc/oracle/tnsnames.ora

Bu dosyada db, makina isimleri, ip adresleri yeralir. En son .bashrc icinde

export TNS_ADMIN=/etc/oracle

Artık sqlplus64 user@db gibi bir ifade ile bağlantı yapılabilir.

Eger Python icinden baglanmak istersek,

http://tshepang.net/accessing-oracle-db-using-python-in-debian

cxOracle lazim, mesela 64 bit Python 2.7 Oracle 11 icin CentOS 5 x86_64 RPM (Oracle 11g, Python 2.7) baglantisina tiklanir. Indikten sonra

sudo alien --install cx_Oracle-5.1.2-11g-py27-1.x86_64.rpm
sudo easy_install cx_oracle
sudo ln -s /usr/lib/python2.7/site-packages/cx_Oracle.so /usr/lib/python2.7/lib-dynloadsudo ln -s /usr/lib/oracle/11.2/client/lib/libnnz11.so /usr/libsudo ln -s /usr/lib/oracle/11.2/client/lib/libclntsh.so.11.1 /usr/lib

Kod ornegi

import pandas as pd]
import pandas.io.sql as sql
import cx_Oracle as odb
conn = odb.connect("[kullanici]/[sifre]@[taban]")
df = sql.read_frame("select .. from", conn)

ile Oracle verisi bir Dataframe içine alınmış olur.


Yukarı