请问python目前除了JayDeBeApi连接oracle租户还有什么其他方式连接

请问python目前除了JayDeBeApi连接oracle租户还有什么其他方式连接

目前,连接 OceanBase 数据库的 Oracle 租户 (Oracle 模式) 主要是通过 JDBC 驱动进行,这也是 JayDeBeApi 所使用的方法。然而,除了 JayDeBeApi 之外,还有一些其他方法可以实现连接。以下是几种常见的方法:

1. cx_Oracle 库

cx_Oracle 是一个广泛使用的 Python 库,用于连接 Oracle 数据库。你可以使用 cx_Oracle 库连接 OceanBase 数据库的 Oracle 租户。

安装 cx_Oracle

首先安装 cx_Oracle 库:

pip install cx_Oracle  

连接示例

import cx_Oracle  

# 连接到 OceanBase 数据库的 Oracle 租户  
dsn = cx_Oracle.makedsn("hostname", "port", sid="sid")  
connection = cx_Oracle.connect(user="username", password="password", dsn=dsn)  

cursor = connection.cursor()  
cursor.execute("SELECT * FROM your_table")  
for row in cursor.fetchall():  
    print(row)  

cursor.close()  
connection.close()  

2. SQLAlchemy

SQLAlchemy 是一个强大的 Python ORM 库,它支持多种数据库,包括 Oracle。你可以使用 SQLAlchemy 库来连接 OceanBase 数据库的 Oracle 租户。

安装 SQLAlchemy 和 cx_Oracle

首先安装这两个库:

pip install sqlalchemy cx_Oracle  

连接示例

from sqlalchemy import create_engine  

# 创建连接字符串  
username = 'username'  
password = 'password'  
host = 'hostname'  
port = 'port'  
sid = 'sid'  

engine = create_engine(f'oracle+cx_oracle://{username}:{password}@{host}:{port}/{sid}')  

# 执行查询  
with engine.connect() as connection:  
    result = connection.execute("SELECT * FROM your_table")  
    for row in result:  
        print(row)  

3. ODBC (PyODBC)

ODBC 是一个通用的数据库连接协议,PyODBC 是一个 Python 库,用于通过 ODBC 连接各种数据库。当然,这也适用于连接 OceanBase Oracle 租户,如果你有合适的 ODBC 驱动。

安装 PyODBC

pip install pyodbc  

连接示例

首先配置适当的 ODBC 驱动,然后使用 PyODBC 连接:

import pyodbc  

# 创建连接字符串  
connection_string = (  
    "DRIVER={Oracle ODBC Driver};"  
    "DBQ=hostname:port/sid;"  
    "UID=username;"  
    "PWD=password"  
)  

connection = pyodbc.connect(connection_string)  
cursor = connection.cursor()  
cursor.execute("SELECT * FROM your_table")  
for row in cursor.fetchall():  
    print(row)  

cursor.close()  
connection.close()  

4. JDBC via JPype (Alternative to JayDeBeApi)

另一种类似于 JayDeBeApi 的方法是使用 JPype。JPype 允许你直接在 Python 中调用 Java 代码,这样可以绕过 JayDeBeApi 直接使用 Java 驱动。

安装 JPype

pip install JPype1  

连接示例

import jpype  
import jpype.imports  
from jpype.types import *  

# 启动 JVM  
jpype.startJVM(classpath=["/path-to-your-jdbc-driver.jar"])  

# 导入 Java 类  
from java.sql import DriverManager  

# 创建连接  
url = "jdbc:oracle:thin:@hostname:port:sid"  
props = {"user": "username", "password": "password"}  
connection = DriverManager.getConnection(url, props)  

stmt = connection.createStatement()  
rs = stmt.executeQuery("SELECT * FROM your_table")  
while rs.next():  
    print(rs.getString(1))  # 读取第一个列  

# 关闭连接  
rs.close()  
stmt.close()  
connection.close()  

# 关闭 JVM  
jpype.shutdownJVM()  
1 个赞

您好 请问sqlalchemy、cx_oracle 的连接方式 您有连接ob成功?

1 个赞

社区ob不支持oracle模式。建议去咨询企业版的技术支持同学获取更快更优的答复
1.如你所在的企业客户已签署OceanBase企业版销售合同,请你联系客户经理;
2.如你所在的企业客户尚未签署OceanBase企业版销售合同,你可通过OceanBase官网商务咨询页面留下你的联系方式,OceanBase企业版的业务顾问会在一个工作日内与你联系。
OceanBase官网商务咨询

https://www.oceanbase.com/contactus?fromPage=https%3A%2F%2Fwww.oceanbase.com%2Fsoftwarecenter-enterprise&dataSources=softwarecenter-enterprise_footercontact_d2022

请问楼主有解决吗?