在unix中尝试检索错误ORA-01804 python的文本时出错

yvgpqqbh  于 5个月前  发布在  Unix
关注(0)|答案(1)|浏览(89)

我想在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:."

字符串
我已经从我的脚本的main方法中调用了这个方法。

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

9gm1akwq

9gm1akwq1#

LD_LIBRARY_PATH环境变量不能从应用程序中设置。必须在进程启动之前设置它!否则,它将不会生效。您收到的错误指示环境设置不正确。请尝试在运行脚本之前**设置环境变量,看看是否可以解决问题!

相关问题