Python连接Oracle实例

最近需要用Python连接Oracle操作,之前接触过,没自己手写过,特此记录。数据库是Oracle 11,python版本2.7的。

这个需求是两个库A和B,假设现在需要识别一张表在A库里面有没记录,如果没有,将表名写入一个log,如果有再去B库里查有没有该表,如果没有,表名计入另外一个log文件。

查库的sql语句

select t.* from all_objects t where t.object_name = upper(&table_name);

Python连接oracle需要的package cx_Oracle 版本需要一致,这个善用搜索就可以,我们直接上代码

 1 #!/usr/bin/env python
 2 #-*- coding:utf-8 -*-
 3
 4 import cx_Oracle
 5
 6 #username
 7 dbusernamea = ‘username1‘
 8 dbusernameb = ‘username2‘
 9
10 #dbconnectaddress
11 db_usernamea = cx_Oracle.connect(dbusernamea,‘password‘,‘dbaddress‘)
12 db_usernameb = cx_Oracle.connect(dbusernameb,‘password‘,‘dbaddress‘)
13
14 #cursor
15 cur_usernamea = db_usernamea.cursor()
16 cur_usernameb = db_usernameb.cursor()
17
18 #readtablename
19 def ReadTableName():
20     fo = open("tablename.txt","r"):
21     print(‘open success!‘)
22     table_name = []
23     for i in fo.readlines():
24         if i != ‘\n‘ and i != ‘\r\n‘:
25             spiliti = i.replace(‘\t‘,‘‘).strip()
26             table_name.append(spiliti)
27     fo.close()
28     return table_name
29
30 #
31 def CheckMainTable(ReadTableName):
32
33     for tablename in ReadTableName:
34     sql_str_checkmaintable = """select a.* from all_objects a where a.object_name = upper(%s) """%tablename
35     cur_usernamrea.execute(sql_str_checkmaintable)
36     #获取结果集
37     rets = cur_usernamea.fetchall()
38     #如果结果集为空判断该表在A中不存在
39     if length(rets) == 0:
40         print(‘MainAcess don‘t have this table: ‘+tablename+‘\n‘)
41         #写入log writelines即可 如有需要
42         with open("filename_a","a") as a:
43             a.writelines.(tablename+‘\n‘)
44
45     else:
46       sql_str_checksubtable = """select a.* from all_objects a where a.object_name = upper(%s) """%tablename
47       cur_usernamreb.execute(sql_str_checksubtable)
48       #获取结果集
49       recv = cur_usernameb.fetchall()
50       #如果结果集为空判断该表在B中不存在
51       if length(recv) == 0:
52           print(‘SubAcess don‘t have this table: ‘+tablename+‘\n‘)
53           #写入log writelines即可 如有需要
54        with open("filename_b","a") as b:
55               b.writelines.(tablename+‘\n‘)
56
57 if __name__ == ‘__main__‘:
58     CheckMainTable(ReadTableName())
59
60 #关闭游标
61 db_usernamea.close()
62 db_usernameb.close()

其实最近也是才开始学习Python连接数据库这个东西,里面一些内容可能写的不好,也不是很完善。因为是纯粹手打,代码可能会有疏漏,有错误的地方如果有人看见请指出,我会及时修正。这个脚本在工作中运行过,亲测有效。但是其实里面有部分内容我也是搜索的,了解的不具体,复制过来改改就用了,所以有问题请大家不吝赐教。

原文地址:https://www.cnblogs.com/littlegao-world/p/12422835.html

时间: 2024-11-03 15:50:15

Python连接Oracle实例的相关文章

python 连接oracle(cx_Oracle模块)

使用python连接oracle数据库:1.安装python3.0:2.安装cx_Oracle模块:3.安装ORACLE_CLIENT :(ORACLE_CLIENT和python位数保持一致:要么都安装32位要么都用64位) 导入连接oracle的模块 import cx_Oracle #获取连接 username=用户名 pass=密码 ipadd=数据库地址 sid=数据库实例 conn=cx_Oracle.connect('username/[email protected]/sid')

python连接Oracle数据库

# python连接oracle数据 ## 介绍------------------------------ python 连接oracle数据库,可以使用cx_oracle模块 - 使用如下命令安装```python -m pip install cx_oracle --pre``` ## 连接oracle代码-----------------------------```pythonimport cx_oracle # 设置 dsn = cx_oracle.makedsn("192.168.

python 连接oracle 报错 cx_Oracle.DatabaseErro

1,python 连接oracle的时候报错如下 cx_Oracle.DatabaseError: ORA-24315: 非法的属性类型 ,2,导致这个错误的原因是服务器oracle版本和客户端cx_oracle客户端版本不一致引起的,所以通过下面命令询oracle版本. select * from v$version 3,然后到 http://sourceforge.net/projects/cx-oracle 下载对应的客户端版本即可

用python连接oracle(11g)数据库

准备: 1.下载对应版本的oracle-instantclient(我这里是11.2.0.1.0) http://www.oracle.com/technetwork/database/features/instant-client/index-097480.html 2.安装 rpm -ivh oracle-instantclient11.2-basic-11.2.0.1.0-1.x86_64.rpm 3.配置环境变量 export LD_LIBRARY_PATH=/usr/lib/oracl

Python 连接 Oracle数据库

1.环境设置 [[email protected] ~]# cat /etc/redhat-release CentOS release 6.9 (Final) [[email protected] ~]# python -V Python 2.6.6 版本:Oracle 12c 2.前提:安装cx_Oracle模块依赖包 由于使用Python连接Oracle,所以需要下载oracle客户端包 官网:http://www.oracle.com/technetwork/topics/linuxx8

Python连接Oracle,从安装到基本用法

本文将介绍如何使用Python连接Oracle数据库进行数据读取与写入.首先介绍环境的安装,此部分借鉴网友的博客,后一部分介绍连接数据库和读书取数等基本使用语法. 1. 环境安装 借鉴网友阑珊的博客,感谢分享! https://www.cnblogs.com/lansan0701/p/8039332.html 2. 使用语法 (1) 连接数据库 #加载cx_Oracle模块 import cx_Oracle #创建连接 conn = cx_Oracle.connect('用户名/密码@主机IP地

windows下python连接oracle数据库

python连接oracle数据库的方法,具体如下 1.首先安装cx_Oracle包2.解压instantclient-basic-windows.x64-11.2.0.4.0.zip到c:\oracle3.拷贝instantclient_11_2下所有.dll文件到c:\python34\Lib\site-packages\下(根据自己的python版本拷贝到相应的site-packages文件夹下) python连接示例代码: # -*- coding: utf-8 -*- import c

python连接oracle配置

环境: 操作系统:win7 64位,CPU是inter的pc机 Oracle服务端:Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - 64bit Production Oracle本地客户端:Release 11.2.0.1.0  32bit Production Python版本:python2.7.5 (安装路径:C:\Python27\) cx_Oracle版本:cx_Oracle-5.2.1-11g.win-amd64

Python 连接Oracle数据库

连接:python操作oracle数据库 1. 下载模块 cx_Oracle 2. Windows下用easy_install.exe (Python安装目录下,Script目录中)先安装pip 3. 在下载cx_Oracle模块的目录下,执行pip install  xxx 命令 4. 验证: Python执行 import cx_Oracle