oracle 自动化脚本,自动化测试常用脚本-连接Oracle数据库

# 用于连接Oracle数据库

#-*- coding:utf-8 -*-

importcx_Oracle as Oraclefrom DBUtils.PooledDB importPooledDBclassOrclPool(object):"""1) 这里封装了一些有关oracle连接池的功能;

2) sid和service_name,程序会自动判断哪个有值,

若两个都有值,则默认使用sid;

若只想用其中一个,则只需要把另一个设置为空即可。如,service_name = ''

3) 关于config的设置,只有 port 的值的类型是 int,其他均为str:"""

def __init__(self, config):

self.conn= OrclPool.__get_conn(config)

self.cur=self.conn.cursor()

@staticmethoddef __get_conn(conf):"""一些 PoolDB 中可能会用到的参数,根据实际情况自己选择

mincached: 启动时开启的空连接数量

maxcached: 连接池最大可用连接数量

maxshared: 连接池最大可共享连接数量

maxconnections: 最大允许连接数量

blocking: 达到最大数量时是否阻塞

maxusage: 单个连接最大复用次数

:param conf: dict 连接Oracle的信息"""host, port, sid, service_name= conf.get('host'), conf.get('port'), conf.get('sid'), conf.get('service_name')

dsn=Noneifsid:

dsn= Oracle.makedsn(host, port, sid=sid)elifservice_name:

dsn= Oracle.makedsn(host, port, service_name=conf.get('service_name'))__pool = PooledDB(Oracle, user=conf['user'], password=conf['passwd'], dsn=dsn, mincached=1, maxcached=5)return __pool.connection()def execute_sql(self, sql, args=None):"""执行sql语句

:param sql: str sql语句

:param args: list sql语句参数列表"""

ifargs:

self.cur.execute(sql, args)else:

self.cur.execute(sql)def fetch_all(self, sql, args=None):"""获取全部结果

:param sql: str sql语句

:param args: list sql语句参数

:return: tuple fetch结果"""self.execute_sql(sql, args)returnself.cur.fetchall()defcommit_sql(self, sql):

self.cur.execute(sql)

self.conn.commit()def __del__(self):"""在实例资源被回收时,关闭该连接池"""self.cur.close()

self.conn.close()if __name__ == "__main__":

orcl_cfg={'user': 'username', # 数据库用户名字'passwd': 'password', # 数据库密码'host': '0.0.0.0', # 数据库链接地址'port': 3000, # 端口'sid': '','service_name': 'tpi2hx', # 数据库名字}

orcl= OrclPool(orcl_cfg)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值