파이썬에서 oracle 데이터베이스에 접근하기 위해서는 window 운영체제에서
오라클 데이터베이스에 연결해주는 dll 파일이 필요하다.
자바 개발환경에서는 jdbc.jar 파일이 이 기능을 해주나
파이썬의 경우 별도의 연결 작업이 필요하다.
이럴 때 사용하는 것이 OracleInstantClient이다,
http://www.oracle.com/technetwork/database/features/instant-client/index-097480.html
이 링크에서 자신의 운영체제와 오라클 버전에 맞는 instantClient를 다운받도록 하자
적당한 디렉토리에 넣어두자
그리고 위의 경로를 복사해 두자.
다음은 환경변수를 설정해야 한다.
본인의 컴퓨터 아이콘 우클 속성에 들어간다.
그 후 아래의 과정을 따라 간다.
그리고 변수 값에 아까 복사했던 경로를 붙여 놓는다
(오라클 데이터베이스 환경변수는 당연히 추가되어있어야한다.)
그러면 완료되고
본인의 파이썬 툴을 키자
나는 pycharm을 사용한다
pycharm의 file - setting 에 들어간다.
그 후 proejct: lab-python에 들어가서
cx-Oracle을 추가해주자
이러면 준비는 끝났다.
테스트 코드를 한 번 적어보자
"""
python에서 oracle 접속하기
1. Oracle 서버가 설치된 폴더가 시스템 환경변수 path에 등록되어 있어야 한다.
C:\oraclexe\app\oracle\product\11.2.0\server\bin
2. Oracle Instant Client dll 을 사용하기 위해 path 설정
C:\Study\instantClient_11_2
3. cx_Oracle 파이썬 패키지를 설치
1) pip install 명령어를 사용: pip install cx_Oracle
2) pyCharm에서 설치(File -> Project -> Proejct Interpreter)
"""
# cx_Oracle 패키지 모듈들을 import
import cx_Oracle as oci
# Oracle 서버와 연결(Connection 맺기)
conn = oci.connect('scott/tiger@localhost:1521/xe')
# Connection 확인
print(conn.version)
# Oracle DB의 test_member 테이블 검색(select)
cursor = conn.cursor() # cursor 객체 얻어오기
cursor.execute('select * from test_member') # SQL 문장 실행
print(cursor.fetchall())
# for rs in cursor:
# print(rs)
cursor.close() # cursor 객체 닫기
# Oracle 서버와 연결 끊기
conn.close
먼저 cx_Oracle을 import 한다.
그 후 오라클 서버와 연결하고
커넥션을 확인한다
커서는 오라클 데이터베이스에서 데이터를 긁을 때 기준이되는 위치정보이다.
내 테이블 정보
[('s', 'ff', 'ff'), ('Namu', 'shasha', 'nsa'), ('admin', '!@#$', '수정@test.com'), ('a', 'd', 'f'), ('d', 'f', 'g'), ('2', '2', '2'), ('5', 't', 'g'), ('23', 't', 'g'), ('되라', 'ehlfk', 'ehlfk@naver.com'), ('아아아', 'dkdkdk', 'jdfdsa@naver.com'), ('dd', 'd', 'd@fjdkls.com'), ('sdfsd', '1234', '123@123'), ('한', 'test12', 'test@py.org')]
execute로 SQL문 정보를 저장하자
테이블 안의 모든 정보를 읽어보자
튜플의 형태로 반환해주면서 잘 읽히는 것을 확인할 수 있을 것이다.
그 후 cursor를 반드시 닫아줘야한다(안닫으면 에러난다), 그리고 커넥션 까지 닫아주면 끝난다.
밑에는 SQL문 활용에 대해서 남겨두겠다.
select_all의 메소드와 활용 방법은 같다.
특정 정보를 가져오는 방법
# id로 검색
sql_select_by_id = 'select * from test_member where id = :mid'
cursor = conn.cursor()
cursor.execute(sql_select_by_id, mid='admin')
print(cursor.fetchone())
테이블 접근 후 추가 방법
# insert
sql_insert = 'insert into test_member VALUES(:id, :password, :email)'
cursor.execute(sql_insert, id='한', password='test12', email='test@py.org')
conn.commit() # insert한 내용을 commit
'그 외 개발관련' 카테고리의 다른 글
python으로 그래프 만들기 - pycharm (0) | 2017.12.08 |
---|---|
Python 개발환경 설치 (0) | 2017.12.05 |
intellij 에서 JRebel 추가하기 (0) | 2017.11.22 |