Я хотел установить переменные среды в unix для моего проекта сценариев Python, который использует cx_Oracle для соединения с базой данных и выполнения операций CRUD.
Я использовал os.environ, чтобы установить переменные среды для oracle,все библиотеки присутствуют в соответствующем каталоге.
Это метод, который я использовал для установки переменных среды: unix
def set_environment():
os.environ["TNS_ADMIN"]="/opt/oracle/orafmw/product/11.2.0.1/client_1/network/admin"
os.environ["ORACLE_HOME"] = "opt/oracle/orafmw/product/11.2.0.1/client_1"
os.environ["LD_LIBRARY_PATH"] = "/opt/oracle/orafmw/product/11.2.0.1/client_1/lib"
os.environ["PATH"] = "$PATH:/opt/oracle/orafmw/product/11.2.0.1/client_1/bin:."
, и я вызвал метод из основного методамой сценарий.
def get_connect_string():
return db_username+'/'+password+'@'+host+':'+port+'/'+service_name
def main():
import os
import cx_Oracle
set_environment()
query = "SELECT * FROM SITE WHERE SITE_CODE = :1"
try:
connect_string = get_connect_string()
conn = cx_Oracle.connect(connect_string)
cur = conn.cursor()
d = cur.execute(query, ["AUS"]).fetchone()
conn.commit()
if d:
data = (([i[0] for i in cur.description]), d)
else:
data = None
except Exception as e:
print("error in operation : ", e)
conn.rollback()
finally:
conn.close()
print(data)
Сообщение об ошибке, которое я получаю:
Error while trying to retrieve text for error ORA-01804