Ошибка при попытке получить текст для ошибки Python ORA-01804 в Unix - PullRequest
0 голосов
/ 20 апреля 2019

Я хотел установить переменные среды в 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

1 Ответ

0 голосов
/ 22 апреля 2019

Переменная среды LD_LIBRARY_PATH не может быть установлена ​​из вашего приложения.Он должен быть установлен до запуска процесса!В противном случае это не вступит в силу.Полученная ошибка указывает на то, что среда не настроена должным образом.Попробуйте установить переменные окружения до запуска вашего скрипта и посмотрите, решит ли это проблему для вас!

...