在Python代码中连接OceanBase Oracle租户

2024年 5月 7日 105.2k 0

背景

当前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;

4. 与 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()

相关文章

Oracle如何使用授予和撤销权限的语法和示例
Awesome Project: 探索 MatrixOrigin 云原生分布式数据库
下载丨66页PDF,云和恩墨技术通讯(2024年7月刊)
社区版oceanbase安装
Oracle 导出CSV工具-sqluldr2
ETL数据集成丨快速将MySQL数据迁移至Doris数据库

发布评论