发布网友
共2个回答
懂视网
1. 简介
cx_Oracle 是一个用来连接并操作 Oracle 数据库的 Python 扩展模块, 支持包括 Oracle 9.2 10.2 以及 11.1 等版本
2.安装
最后是去官网http://cx-oracle.sourceforge.net/上下载安装,我自己通过pip和easy install安装都失败了,我是在win8.1的环境下安装的
3.使用
使用就很简单,以下为代码示例
#!/usr/bin/env python #-*- coding:utf-8 -*- import cx_Oracle import random import os import time conn = cx_Oracle.connect('username/password@ip/SID') cursor = conn.cursor () sql_sring = "SELECT max(id) from tb_test" cursor.execute(sql_sring) row = cursor.fetchone() v_id = int(row[0]) + 1 print v_id current_date = time.strftime('%Y-%m-%d %H:%M:%S',time.localtime(time.time())) sql_string="INSERT INTO TB_TEST(TID,CREATE_DATE) " "VALUES ("+str(v_id)+",to_date('"+str(current_date)+"','yyyy-mm-dd hh24:mi:ss'))" #print sql_string cursor.execute(sql_string) conn.commit() cursor.close () conn.close ()
版权声明:本文为博主原创文章,未经博主允许不得转载。
Python使用cx_Oracle模块连接操作Oracle数据库
标签:python cx_oracle
热心网友
# -*- coding:utf-8 -*-#!/usr/bin/env python'''Created on 2014年8月4日 @author: 188007 连接Oracle数据库的class'''import osos.environ['NLS_LANG'] = 'SIMPLIFIED CHINESE_CHINA.ZHS16GBK'import cx_Oracleimport sys class Oracle: ''' python access oracle helper tool class ''' def __init__(self, ip,port,db,user,pwd): self.ip = ip self.port = port self.db = db self.user = user self.pwd = pwd def __GetConnect(self): """ 得到连接信息 返回: conn.cursor() """ if not self.db: raise(NameError,"没有设置数据库信息") dsn=cx_Oracle.makedsn(self.ip,self.port,self.db) self.conn=cx_Oracle.connect(self.user,self.pwd,dsn) cur = self.conn.cursor() if not cur: raise(NameError,"连接数据库失败") else: return cur def ExecQuery(self,sql): """ 执行查询语句 返回的是一个包含tuple的list,list的元素是记录行,tuple的元素是每行记录的字段 调用示例: oracle = Oracle('10.27.95.253','1561','GFDMS','GFITAPPS','GFITAPPS') resList = oracle.ExecQuery("SELECT OBJID,NUMCODE,AREACODE,AREANAME,PROVCODE,PROVNAME,CITYCODE,CITYNAME,TOWNCODE,TOWNNAME,REMARK FROM GFDMS.THZONE ORDER BY NUMCODE") for (AREANAME) in resList: print str(AREANAME).decode('gb2312') """ try: cur = self.__GetConnect() cur.execute(sql) resList = cur.fetchall() #查询完毕后必须关闭连接 self.conn.close() except Exception, err: sys.exit(1) return resList def ExecNonQuery(self,sql): """ 执行非查询语句 调用示例: oracle.ExecNonQuery("insert into THZONE values('x','y')") """ try: cur = self.__GetConnect() cur.execute(sql) self.conn.commit() self.conn.close() except Exception, err: sys.exit(1) # def main():# # oracle = Oracle('10.27.95.253','1561','GFDMS','GFITAPPS','GFITAPPS')# # #返回的是一个包含tuple的list,list的元素是记录行,tuple的元素是每行记录的字段# # oracle.ExecNonQuery("insert into THZONE values('x','y')")# oracle = Oracle('10.27.95.253','1561','GTEST','GTAPPS','GTAPPS')# resList = oracle.ExecQuery("SELECT OBJID,NUMCODE,AREACODE,AREANAME,PROVCODE,PROVNAME,CITYCODE,CITYNAME,TOWNCODE,TOWNNAME,REMARK FROM GTEST.THZONE ORDER BY NUMCODE")# for (AREANAME) in resList:# print str(AREANAME).decode('utf-8')# # if __name__ == '__main__':# main()