Мне нужно прочитать данные из Oracle db (с помощью pandas). Я использую библиотеки cx_oracle. В учебнике предлагается использовать эту инструкцию для создания соединения:
connection = cx_Oracle.connect(username, password, connectString)
У меня нет строки подключения, кроме хоста, db_name, пользователя и пароля. Как создать соединение или как создать строку подключения?
Изменить: У меня:
Вам понадобятся следующие переменные (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
Попробуйте синтаксис 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)