python利用python连接Oracle数据库的好用方法
这篇文章最早发布在CSDN了,最近想尝试使用一下头条,重新转移过来了。背景介绍
之前使用的数据库一直是MySql,偶尔使用PostgreSQL,都是利用的数据库连接池使用;
最近需要在Oracle数据库取数据,因此查找了一下连接的方法。网上大部分都是给出的使用cx_Oracle库进行连接,方法也比较简单。但是在进一步了解的时候发现cx_Oracle库 的最新版本已经升级为python-oracledb了;于是简单探究了一下。
python-oracledb驱动程序是一个Python扩展模块,可以访问Oracle数据库。它具有支持Python数据库API v2.0规范的全面功能,具有相当多的附加内容和一些排除项。
python-oracledb驱动程序是cx_Oracle 8.3的重命名的主要版本继承者。python-oracledb功能亮点:从 PyPI 轻松安装支持多个 Oracle 数据库版本;支持 Python 数据库 API v2.0 规范执行 SQL 和 PL/SQL 语句广泛的 Oracle 数据类型支持,包括 JSON、大型对象 ( 和 ) 和 SQL 对象的绑定CLOBBLOB连接管理,包括连接池Oracle 数据库高可用性功能充分利用 Oracle 网络服务基础架构,包括加密的网络流量python-oracledb 与 cx_Oracle 使用方法对比cx_Oracle使用方法import cx_Oracle # 设置连接参数 connection = cx_Oracle.connect(user="hr", password="welcome", dsn="localhost/orclpdb1") cursor = connection.cursor() cursor.execute(""" SELECT first_name, last_name FROM employees WHERE department_id = :did AND employee_id > :eid""", did = 50, eid = 190) for fname, lname in cursor: print("Values:", fname, lname)python-oracledb的使用方法python -m pip install oracledb
默认情况下,python-oracledb在"精简"模式下运行,该模式直接连接到Oracle数据库。此模式不需要 Oracle 客户端库。但是,当python-oracledb使用它们时,可以使用一些其他功能。Python-oracledb在使用Oracle客户端库时被称为"Thick"模式。这两种模式都具有支持 Python 数据库 API v2.0 规范的全面功能。
从默认的精简模式更改为Thick模式需要添加对 oracledb.init_oracle_client() 的调用;当调用init_oracle_client() 时,python-oracledb 使用搜索启发式方式动态加载 Oracle Client 库,使用方法:import oracledb oracledb.init_oracle_client(lib_dir=r"D:instantclient_21_6")独立链接模式
一般方法:import oracledb import getpass userpwd = getpass.getpass("Enter password: ") connection = oracledb.connect(user="hr", password=userpwd, dsn="dbhost.example.com/orclpdb") # 其他功能代码 # 关闭连接 connection.close()
或者可以使用以下方法:username="hr" userpwd = os.environ.get("PYTHON_PASSWORD") host = "localhost" port = 1521 service_name = "orclpdb" dsn = f"{username}/{userpwd}@{port}:{host}/{service_name}" connection = oracledb.connect(dsn) # 其他功能代码 # 关闭连接 connection.close()使用连接池的方法# 初始化连接 pool = oracledb.create_pool(user="hr", password=userpwd, dsn="dbhost.example.com/orclpdb", min=2, max=5, increment=1) # Acquire 连接到池 connection = pool.acquire() # 使用连接池 with connection.cursor() as cursor: for result in cursor.execute("select * from mytab"): print(result) # 释放连接池 pool.release(connection) # 关闭连接池 pool.close()
八旗与满族之间的关系(一)公元1601年(明万历二十九年),努尔哈赤已经统一建州各部,按当时的户籍编制为300人一牛录,是一个户口单位。五牛录为一甲喇,五甲喇即为一旗,每旗约7500人。这种建制早在女真(后
河南一名酒陨落,曾家喻户晓众人皆知,如今日落西山无人知大家都知道河南有着中原粮仓的美称,粮食资源十分的充足,所以这也为河南诞生名酒提供了先天条件,使众多名酒诞生在中原大地。从现在回顾豫酒历史,便会了解到豫酒也有巅峰时刻,比如杜康张弓宋
唯一两度在中原建国的少数民族,满族拥有怎样的历史?中国漫长的历史中,北方少数民族在中原建立政权的不在少数,五胡乱华时代的匈奴鲜卑羌羯氐都曾在中原建立过政权,五代时期的后唐是沙陀人建立的,后来的女真蒙古都曾在中原建国,直至后来的满清
草帽书记绘就乡村幸福蓝图记党的二十大代表怀柔区喇叭沟门满族乡中榆树店村党支部书记彭兴利彭兴利是喇叭沟门满族乡中榆树店村土生土长的农民,也是在这个贫困村吃百家饭长大的孩子,对这里有着深厚的感情。30多年前,被选为村主任的他,带领全村搞玉米制种壮大肉牛养殖做强民俗旅游发
隐藏在豫西山区的红叶,红遍卢氏山川请收藏卢氏红叶游览路线图头条创作挑战赛最火红的季节是秋天,最红的秋天在大山深处。到豫西山区走一走,看一看,才会知道山区的秋天才是最红的。豫西山区的卢氏县红叶面积大,游览路线丰富,红叶延续时间长。那里的红叶
出自满族的7位女星,皆是皇亲国戚,哪个最令你意外?文拾九客栈编辑拾九客栈在娱乐圈中,从不乏各色各样的美人,然而你知道有哪些绝色女星,是出自满清贵族,有着皇室血统的吗?以下7位颜值天花板的满族女艺人你知道几个?谁又最令你意外呢?王丽
加密货币转正!多米尼克立法确认波场系代币为国家法币继萨尔瓦多之后,加勒比国家多米尼克选择赋予加密货币法币地位。波场TRON旗下7种代币正式成为该国法定数字货币,具备法币地位。这一地位更是已经从多米尼克立法层面得到了保障和确认。波场
情话简短一句话撩人情话当然是要撩人才可以啊,一句简短的情话说不定就能够轻松地让自己喜欢的人心动哦,所以大家知道有哪些简短的情话吗?1遇见你之后,我的伟大抱负和一腔热血,都变成黄昏与你走在归家小路上的
其实很想你,但是算了昨天很久没看的微博,在关注列表里抓到了一个朋友的消息。点开她的主页,发现我们已经半年没互动了。不仅在微博上,在微信上也是如此。这些没有联系的日子,我们的生活一切如常,没有任何变化。
支离破碎的完整从他那飘散的带子,足以窥见他那追求自由的心,那是禁锢在牢笼之下的跳动的心。太过长久的压抑也许会令他失去本心,可他并没有。反而,在一次又一次的反抗与斗争中,他成功了,他成功逃挣脱了世
愿一切安好!想你,我的爱人很多天没像今天一样,又感觉痛彻心扉。今天是你的圆七,家人们都过来了。他们真好,虽不是休息天,但都请假出来,只是为了再送你一程。今天依然是你的好侄子给你做了一大桌好吃的菜,大家都给你