python使用Cx_Oracle 连接数据库报错

发布网友

我来回答

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()

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com