代码之家  ›  专栏  ›  技术社区  ›  paolof89

PADAS连接到Oracle数据库而不使用连接字符串

  •  1
  • paolof89  · 技术社区  · 7 年前

    我需要从Oracle数据库读取数据(使用pandas)。 我正在使用cx_Oracle库。本教程建议使用以下说明创建连接:

    connection = cx_Oracle.connect(username, password, connectString)
    

    我没有连接字符串,只有主机、数据库名称、用户和密码。 如何创建连接或如何创建连接字符串?

    编辑: 我有:

    • 主机名
    • 港口
    • 服务名(不是SID)
    • 用户与随钻测井
    2 回复  |  直到 7 年前
        1
  •  1
  •   LOrD_ARaGOrN    7 年前

    您需要以下变量(IP、端口、SID、用户名、密码)。一旦创建了光标,就可以使用它来插入和查询数据库。

    def dbquery(query_db, cred_db):
        """
        This function queries the Database
        """
        curs = cred_db.cursor()
        curs.execute(query_db)
        rows = curs.fetchall()
        curs.close()
        return rows
    
    connectString= cx_Oracle.makedsn(IP, PORT, SID)
    DB_CRED = cx_Oracle.connect(USERNAME, PASSWORD, connectString)
    QUERY = "SELECT * FROM something WHERE blah blah"
    RES = dbquery(QUERY, DB_CRED)
    

    使用上面的代码,只需将查询分配给查询变量即可。

        2
  •  -1
  •   Christopher Jones    7 年前

    尝试Oracle的轻松连接语法:

    connection = cx_Oracle.connect(username, password, 'HOSTNAME:PORT/SERVICENAME')
    

    参见Oracle文档 Understanding the Easy Connect Naming Method .

    或使用:

    connectString = cx_Oracle.makedsn(IP, PORT, service_name=SERVICENAME)
    connection = cx_Oracle.connect(username, password, connectString)