python-3.x - 在执行 aws python lambda linux 时尝试检索错误 ORA-01804 的文本时出错
问题描述
我正在尝试从 aws lambda 执行以下 lambda 函数,我使用 python 3.7 作为运行时环境。
import cx_Oracle
import os
import logging
import boto3
from botocore.exceptions import ClientError
from base64 import b64decode
logger = logging.getLogger()
logger.setLevel(logging.INFO)
def lambda_handler(event, context):
logger.info('begin lambda_handler')
os.environ['LD_LIBRARY_PATH'] = os.getcwd()
dsn = cx_Oracle.makedsn("hostname", 1521, service_name="servicename")
con = cx_Oracle.connect("userid", "passwod", dsn)
cur = con.cursor()
#logger.info('username: ' + username)
#logger.info('host: ' + host)
sql = """SELECT COUNT(*) AS TEST_COUNT FROM DUAL"""
cur.execute(sql)
columns = [i[0] for i in cur.description]
rows = [dict(zip(columns, row)) for row in cur]
logger.info(rows)
con.close()
logger.info('end lambda_handler')
return "Successfully connected to oracle."
但是当我在 lambda 以上执行时,我得到以下错误。尝试检索错误 ORA-01804 的文本时出错
对此有什么帮助吗?
解决方案
检查您的 Oracle 即时版本是否与您的数据库相同。这也可能导致此错误。我尝试使用最新的 oracle 即时客户端 v21.1,它会发出与此相同的错误。事实证明,托管数据库的服务器使用的是 v11.2,所以我不得不下载 v11.2 来匹配它。
推荐阅读
- hyperledger - 如何使用 Hyperledger 构建私有区块链网络
- matlab - 使用 rtwin.tlc 导出到工作区问题
- python - Python网页抓取和数据挖掘
- c++ - Boost::iostreams 链接器错误,找不到 zlib
- c++ - 64 位 DLL 中鼠标的 SetWindowsHookEx 影响 32 位应用程序窗口移动
- django - Django TypeError:render() 得到了一个意外的关键字参数“renderer”
- ionic-framework - ngif 无法读取 null 的属性“肩膀”
- python - 在 Python 中进入 for 循环之前的函数分配
- node.js - 在贝宝中进行多供应商付款的方法和方法
- html - 动态内容的水平对齐(特殊情况)