AWS RDS oracle python connection



我已经启动了一个RDS Oracle数据库实例,并希望使用python代码连接它。 我用cx_oracle做了一些事情,但没有解决。任何建议/帮助都会很棒!

提前致谢

import cx_Oracle
connstr = 'username/password@testinstance.cycxmhpviuwu.eu-west-1.rds.amazonaws.com:1521/orcl'
conn = cx_Oracle.connect(connstr)

我收到的错误消息是:

cx_Oracle.数据库错误: DPI-1047: 无法加载 32 位 Oracle 客户端库:"找不到指定的模块">

您需要 (a( 安装 32 位 Oracle 客户端库或 (b( 确保您使用的是 64 位 Python 和 64 位cx_Oracle。有关详细信息,请参阅安装说明。

请检查 , 32 位/64 位库 和 安装指南

此外,您可以参考以下代码片段

    from __future__ import print_function
    
    import cx_Oracle
    import boto3
    import base64
    import requests
    import json
    import configparser
    
    def connect_oracle(oracle_arn,oracle_host,oracle_port,oracle_db):
        session = boto3.session.Session()
        client = session.client('secretsmanager','us-west-2')
    
        response = client.get_secret_value(SecretId=oracle_arn)
        data = json.loads(response['SecretString'])
    
        dsn_tns = cx_Oracle.makedsn(oracle_host,oracle_port,oracle_db)
    
        conn = cx_Oracle.connect(data['username'],data['password'],dsn_tns)
    
        return conn
    
    
    
    def test_oracle_connect():
    
        #change the variable value as required 
        oracle_arn = 'oracle_arn'
        oracle_host = 'oracle_host'
        oracle_port = 'oracle_port'
        oracle_db = 'oracle_db'
        
        run_rds_test_scripts = 'true'
    
        if run_rds_test_scripts == 'true':
            conn = connect_oracle(oracle_arn,oracle_host,oracle_port,oracle_db)
    
            cur = conn.cursor()
            executed = cur.execute('select count(*) from dba_tables')
            res = cur.fetchmany(numRows=1)
    
            row_number = len(res)
    
            assert row_number == 1
            cur.close()
            conn.close()
        else:
            print('no run')
test_oracle_connect()

相关内容

最新更新