在python代码中连接OceanBaseOracle租户

背景

当前OceanBase数据库只支持通过Java和C驱动连接 Oracle 模式租户,不支持其他语言的驱动程序,但是不少社区用户对python代码中连接Oracle模式有需求,这里提供一种绕过办法,通过JayDeBeApi配合JDBC间接访问Oracle 模式。

前提条件

  • 确保设置了基本的数据库开发环境
  • 确保计算机上的 Java 环境为 Java JDK 8 版本
  • 确保计算机上的 Python 环境为 3.6.8 版本
  • 已获取 OceanBase Connector/J 驱动程序安装包

操作步骤

  1. 安装 JayDeBeApi,推荐使用 pip 安装方式,详细信息参见 使用 pip 安装 JayDeBeApi
  2. 将 OceanBase Connector/J 的 JAR 安装包放入本地路径中
  3. 在数据库中创建测试对象。示例如下:
CREATE TABLE test_python(id NUMBER, name VARCHAR2(20));
INSERT INTO test_python VALUES (1, 'test1');
INSERT INTO test_python VALUES (2, 'test2');
COMMIT;
  1. 与 OceanBase 数据库建立连接。即在如下 Python 代码段中,填写相应的参数信息,如果获得正确的运行结果,则说明数据库连接成功。
  • 在 url 字段填入相应的 IP 地址和端口号
  • 在 driver 字段输入类路径
  • 在 jarFile 字段填入相应的 JAR 安装包路径
#!/usr/bin/env python3.6
-*- coding: UTF-8 -*-
encoding = "utf8"
import jaydebeapi
def ob_test():     //ob_test() 为自定义 Python 项目名称。
        url = 'jdbc:oceanbase://host:port/database'
        user = 'testUser'
        password = '******'
        driver = 'com.alipay.oceanbase.jdbc.Driver'
        jarFile = './oceanbase-client-2.4.3.jar'
        sqlStr = 'select * from test_python'     // SQL 测试语句
conn=jaydebeapi.connect('oracle.jdbc.driver.OracleDriver','jdbc:oracle:thin:@127.XXX.XXX.XXX:1521/orcl',['hwf_model','hwf_model'],'E:/pycharm/lib/ojdbc14.jar')
        conn = jaydebeapi.connect(driver, url, [user, password], jarFile)
        curs = conn.cursor()
        curs.execute(sqlStr)
        result = curs.fetchall()
        print(result)
        curs.close()
        conn.close()
ob_test()
1 个赞

:+1::+1::+1::+1::+1::+1: