Post List

2015년 9월 3일 목요일

Python 과 Oracle 연동 #02 cx_Oracle.connect()로 Oracle 접속하기

Oracle 로 접속하기 위해서 cx_Oracle.connect( ) 함수를 사용합니다.
그 결과 Connection Object 를 반환합니다.

접속하는 방법이 여러가지가 있습니다.

1. Connection String을 이용하는 방법

'user/password@address:port/sid' 의 형태로 connection string 을 생성하여 connect 함수에 parameter로 전달하면 됩니다.
SYSDBA로 접속의 경우에는 추가 parameter가 있습니다.

conn = cx_Oracle.connect('scott/tiger@localhost:1521/orcl')
conn = cx_Oracle.connect('sys/orange@localhost:1521/orcl', mode = cx_Oracle.SYSDBA)

2. DSN 을 이용하는 방법

('user' , 'password' , dsn object) 를 인자로 전달합니다.
dsn object('address', port, 'sid')를 인자로 생성하면 됩니다.

dsn = cx_Oracle.makedsn('localhost',1521,'orcl')

conn = cx_Oracle.connect('scott','tiger',dsn)
conn = cx_Oracle.connect('sys','orange',dsn, mode = cx_Oracle.SYSDBA)

conn = cx_Oracle.connect('scott','tiger',cx_Oracle.makedsn('localhost',1521,'orcl'))
conn = cx_Oracle.connect('sys','orange',cx_Oracle.makedsn('localhost',1521,'orcl'), mode = cx_Oracle.SYSOPER)

3. tnsnames.ora 를 이용하는 방법

Oracle Client가 깔려있고, ORACLE_HOME 이 Registry 나 Environment Variable 에 등록되어 있는 경우와 같이 정상적으로 Oracle Client 사용이 가능한 경우에는 해당 값을 이용하여 접속이 가능합니다.

('user' , 'password' , 'tnsnames.ora에 있는 DB alias')를 인자로 전달하면 됩니다.

conn = cx_Oracle.connect('scott','tiger','ORCL')
conn = cx_Oracle.connect('sys','orange','ORCL', mode = cx_Oracle.SYSDBA)

cx_Oracle Module의 다른 Function 및 Constant 에 대해 알아보실려면 아래 Link에 자세히 나와있습니다.
(사실 그렇게 까지 문서가 자세하진 않습니다. ;;;; 예제도 없구요.)

http://cx-oracle.readthedocs.org/en/latest/module.html

댓글 없음:

댓글 쓰기