Python 사용 cxOracle Oracle Oracle 데이터베이스 연결

이 물건 은 정말 my sql 연결 이 편리 하지 않 습 니 다.
설치 cxOracle
pip 가 설치 되 어 있 지 않 으 면 IDE 를 다시 시작 하거나 홈 페이지 를 직접 열 어 설 치 를 다운로드 합 니 다. pycharm 을 사용 하면 그래 픽 인터페이스 에서 설 치 를 검색 합 니 다.
pip install -i https://pypi.douban.com/simple cx_oracle

oci. dll 다운로드
이것 이 없 으 면 Oacle 에 연결 할 수 없습니다... Navicat 으로 Oacle 에 연결 하 는 것 도 잘못 되 었 다 면 이 압축 해제 디 렉 터 리 를 다운로드 하여 Navicat 프로그램 루트 디 렉 터 리 에 넣 고 설정 할 수 있 습 니 다.
Oacle 홈 페이지 다운로드 페이지
코드
그 중 ocidir 가 다운로드 한 파일 의 압축 을 풀 어 주 는 디 렉 터 리 입 니 다. 디 렉 터 리 에는 oci. dll 파일 init 함수 의 판단 시스템 형식 Linux 에서 테스트 하지 않 고 사용 하기 어 려 우 면 스스로 수정 해 야 합 니 다.
cx_oracle 홈 페이지 cxOacle 공식 매 뉴 얼
ORACLE_OCI_DIR 은 다음 과 같은 형식 입 니 다.
ORACLE_OCI_DIR = 'E:\Projects\GitProject\Other\instantclient_12_2'

2018 년 6 월 22 일 다음 코드 의 오 류 를 업데이트 합 니 다.
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
# Date: 2018-06-22 09:41:08


import cx_Oracle
import platform
import os
import settings


class ConnectOracleDatabase(object):

    def __init__(self):
        self.user = settings.DB_USER
        self.password = settings.DB_PASSWORD
        self.ip = settings.DB_IP
        self.port = settings.DB_PORT
        self.service_name = settings.DB_SERVICE
        self.oci_path = settings.ORACLE_OCI_DIR

        sys_version = platform.architecture()
        if sys_version[1] is not 'WindowsPE':
            os.environ['LD_LIBRARY_PATH '] = self.oci_path
        else:
            os.environ['PATH'] = os.environ['PATH'] + ';' + self.oci_path

        #         
        os.environ['NLS_LANG'] = 'SIMPLIFIED CHINESE_CHINA.UTF8'

        self.db_conn = None
        self.db_cursor = None

        self.create_connect()

    def create_connect(self):
        try:
            self.db_conn = cx_Oracle.connect(self.user, self.password,
                                             '%s:%s/%s' % (self.ip,
                                                           self.port,
                                                           self.service_name))
            self.db_cursor = self.db_conn.cursor()
        except Exception as error:
            print("Error creating database connection: %s" % str(error))

    def exec_sql_command(self, sql_command):
        query_result = self.db_cursor.execute(sql_command)
        return query_result  #     return    ,        __init__ 

    def __del__(self):
        try:
            self.db_cursor.close()
            self.db_conn.close()
        except AttributeError as error:
            print(str(error))


oracle_obj = ConnectOracleDatabase()

sql = "select * from CJ_USER"
res = oracle_obj.exec_sql_command(sql)
for i in res.description:
    print(i)

좋은 웹페이지 즐겨찾기