Python连接Oracle实例

Posted littlegao-world

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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 != 
 and i != 
:
25             spiliti = i.replace(	,‘‘).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 dont have this table: +tablename+
)
41         #写入log writelines即可 如有需要
42         with open("filename_a","a") as a:
43             a.writelines.(tablename+
)
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 dont have this table: +tablename+
)
53           #写入log writelines即可 如有需要
54        with open("filename_b","a") as b:
55               b.writelines.(tablename+
)
56 
57 if __name__ == __main__:
58     CheckMainTable(ReadTableName())
59 
60 #关闭游标
61 db_usernamea.close()
62 db_usernameb.close()

 

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

以上是关于Python连接Oracle实例的主要内容,如果未能解决你的问题,请参考以下文章

python 连接oracle(cx_Oracle模块)

想做一个JAVA连接oracle的简单的用swing实现界面的对表单的增删改查的小实例。有人有相关代码吗。

Android 逆向使用 Python 解析 ELF 文件 ( Capstone 反汇编 ELF 文件中的机器码数据 | 创建反汇编解析器实例对象 | 设置汇编解析器显示细节 )(代码片段

使用实体框架迁移时 SQL Server 连接抛出异常 - 添加代码片段

python 实例化形式片段

几种常用PHP连接数据库的代码示例