cx_oracle

파이썬에서 oracle DB에 쿼리를 날릴려면 cx_oracle을 설치해야한다.(pip install cx_oracle)

 

Oracle Service Class
import cx_Oracle
import os
from cx_Oracle import Connection, Cursor


class OracleService:
    def __init__(self, query: str):
        self.result: list = []
        self.cursor: Cursor = self.init_env().cursor()
        self.get_result(query)

    def init_env(self) -> Connection:
        os.environ["NLS_LANG"] = ".AL32UTF8"
        dsn_tns = cx_Oracle.makedsn('ip', '1521', service_name='service_name')
        return cx_Oracle.connect(user=r'user', password='password', dsn=dsn_tns)

    def get_result(self, query) -> None:
        self.cursor.execute(query)
        dict_temp: dict = {}
        for (RPICU, RPTAX, RPALPH, RPDC, RPZ5DEBITAT, RPDL02, RPRMK) in self.cursor:
            dict_temp['RPICU'] = RPICU
            dict_temp['RPTAX'] = RPTAX.strip()
            dict_temp['RPALPH'] = RPALPH.strip()
            dict_temp['RPDC'] = RPDC.strip()
            dict_temp['RPZ5DEBITAT'] = str(RPZ5DEBITAT).strip()
            dict_temp['RPDL02'] = RPDL02.strip()
            dict_temp['RPRMK'] = RPRMK.strip()
            self.result.append(dict_temp)

1. 간단하게 init_env 메서드를 활용해서 Connection을 만든다.

  - os.envrion을 지정해줘야 한글이 깨지지 않는다.

 

2. get_result 메서드를 이용해서 쿼리를 날리고 결과를 result에 담는다.

 

너무 심플하다.

 

Django HttpResponse
    query = "select *  from 오라클 TABLE"
    service = OracleService(query)
    return HttpResponse(content=json.dumps(service.result), content_type='application/json')

1. django에서 httpResponse를 날릴때 json.dumps를 이용해서 json 데이터로 response를 보낼 수 있도록하자.

+ Recent posts