Панды подключаются к Oracle Db без строки подключения - PullRequest
0 голосов
/ 03 декабря 2018

Мне нужно прочитать данные из базы данных Oracle (с пандами).Я использую библиотеки cx_oracle.Учебник предлагает использовать эту инструкцию для создания соединения:

connection = cx_Oracle.connect(username, password, connectString)

У меня нет строки соединения, кроме хоста, имени_бд, пользователя и пароля.Как создать соединение или как создать строку подключения?

Изменить: У меня есть:

  • Имя хоста
  • Порт
  • Имя службы (не SID)
  • Пользователь & Pwd

Ответы [ 2 ]

0 голосов
/ 04 декабря 2018

Попробуйте синтаксис Oracle Easy Connect:

connection = cx_Oracle.connect(username, password, 'HOSTNAME:PORT/SERVICENAME')

См. Документацию Oracle Понимание метода именования Easy Connect .

Или используйте:

connectString = cx_Oracle.makedsn(IP, PORT, service_name=SERVICENAME)
connection = cx_Oracle.connect(username, password, connectString)
0 голосов
/ 03 декабря 2018

Вам нужны следующие переменные (IP, PORT, SID, USERNAME, PASSWORD).Создав курсор, вы можете использовать его для вставки, а также для запроса к БД.

def dbquery(query_db, cred_db):
    """
    This function queries the Database
    """
    curs = cred_db.cursor()
    curs.execute(query_db)
    rows = curs.fetchall()
    curs.close()
    return rows

connectString= cx_Oracle.makedsn(IP, PORT, SID)
DB_CRED = cx_Oracle.connect(USERNAME, PASSWORD, connectString)
QUERY = "SELECT * FROM something WHERE blah blah"
RES = dbquery(QUERY, DB_CRED)

Используйте приведенный выше код, просто присвойте свой запрос переменной QUERY

...