Панды подключаются к Oracle Db без строки подключения

1

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

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

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

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

  • имя хоста
  • порт
  • Имя службы (не SID)
  • Пользователь и Pwd
Теги:
pandas
cx-oracle
connection-string

2 ответа

0
Лучший ответ

Вам понадобятся следующие переменные (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

  • 0
    У меня нет sid, но имя службы.
  • 0
    Я нашел SID с «выбрать экземпляр из v $ thread;» Теперь, как я использую курсор с пандами?
Показать ещё 3 комментария
0

Попробуйте синтаксис 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)

Ещё вопросы

Сообщество Overcoder
Наверх
Меню