Python学习之 cx_Oracle学习记录 一

今天开始正式学习Python,正好在学Oracle,刚好结合在一起把cx_Oracle学习了。

Python是靠cx_Oracle来和Oracle来交互的。

  1. 首先就是安装这些东西了,我用的环境是Centos6.4 64位版本,在网上找到的cx_Oracle是最高支持Python到3.3,

所以我下的是Python3.3,使用的数据库是11g的,所以cx_Oracle下载相应的版本。

cx_Oracle下载地址:http://sourceforge.net/projects/cx-oracle/files/5.1.2/

上面的地址这里没有最新版本的,我用的是5.1.3在这个地址下的

cx_Oracle下载地址: https://pypi.python.org/pypi/cx_Oracle/5.1.3

先说一下,我电脑本身装着那个Python2.6呢,但是我要用python3.3,所以下载了个python3.3的源码包进行安装

然后我下载了cx_Oracle的rpm安装包,但是安装后,使用import cx_Oracle没有这个模块。

然后我就又下载了cx_Oracle的源码包,自己这样安装,安装后,就可以用了。

cx_Oracle源码包中,有一个文件是setup.py,这里面有具体的安装方法,

python setup.py build install

这里python我因为安装的是3.3的,所以我用的是

python3.3 setup.py build install

这样就是安装过程了,并且我的机器是本身安装了Oracle 11g的。

2. 然后就是使用了,我在网上看了一下,使用的帖子都差不多,内容也没有多大区别,然后我就在官网上找到了说明

地址:http://cx-oracle.readthedocs.org/en/latest/module.html

根据这里的介绍来使用就可以了。

3. 先放一个我刚写的测试的,遇到了问题。

1.py

#!/usr/local/bin/python3.3
import cx_Oracle as orcl
print(orcl.clientversion())
username = "scott"
passwd = "xx"
host = "192.168.32.200"
port = "1521"
sid = "oracleSid"
dsn = orcl.makedsn(host, port, sid)
con = orcl.connect(username, passwd, dsn)
cursor = con.cursor()
sql = "SELECT ENAME, EMPNO FROM EMP"
cursor.execute(sql);
result = cursor.fetchall()
print("Total: " + str(cursor.rowcount))
for row in result:
    print(row)
cursor.close()
con.close()
print(orcl.Date(2015,3,13))

可以看到

orcl.Date(2015,3,13) 这里D是大写的,我在写的时候以为不区分大小写,就写成小写的,报错。

con.cursor()这里cursor第一个字母是小写的,我改成大写但是报错,我看文档中cx_Oracle.Cursor(connection)?

这里是Cursor,这第一个字母是大写的,我当时就出现疑问了,怎么格式不统一呢???

但是后来我发现原来是我看错了,使用cx_Oracle调用的,第一个字母是大写的,也就是文档中的那种,

但是con.cursor()这个是用连接调用的,不是一回事。

在这里con.cursor()还可以改成,orcl.Cursor(con)

这样也是取得游标了。

还有那个dsn是data source name的简写。

时间: 2025-01-21 21:56:44

Python学习之 cx_Oracle学习记录 一的相关文章

关于在学习python爬虫时的学习记录

最近学习python3爬虫,看的是这位博主的博客,不得不说,是真的厉害,通俗易懂^?_?^ 我要学习的还有很多-从基本的python知识,我就被难倒了- 哎,记录下我的盲点- 花了近一个钟头测试出来的结果. 在爬取相关的html时,text ≠ text[0] 后者是正确的.我一直以为不加的效果也是一样的结果,在我理解看来就是从头开始的,即从0到尾的所有相关的内容,实际上我的理解与相关的python基础不谋而和,可能是爬虫就需要如此的?我就默认好了- 在python中的方法后面的()是不可省去的

python基础教程_学习笔记9:抽象

抽象 懒惰即美德. 抽象和结构 抽象可以节省大量工作,实际上它的作用还要更大,它是使得计算机程序可以让人读懂的关键. 创建函数 函数可以调用(可能包含参数,也就是放在圆括号中的值),它执行某种行为并且返回一个值.一般来说,内建的callable函数可以用来判断函数是否可调用: >>> import math >>> y=1 >>> x=math.sqrt >>> callable(x) True >>> callab

python基础教程_学习笔记10:异常

异常 什么是异常 Python用异常对象来表示异常情况.遇到错误后,会引发异常.如果异常对象并未被处理或捕捉,程序就会用所谓的回溯(Traceback,一种错误信息)终止执行: >>> 1/0 Traceback (most recent call last): File "<pyshell#0>", line 1, in <module> 1/0 ZeroDivisionError: integer division or modulo by

python基础教程_学习笔记26:好玩的编程

好玩的编程 程序设计的柔术 当大家坐下来并计划应该如何组织程序的时候,对于这个具体的程序,还没有任何的经验.在实现功能的时候,会逐渐地学到对原始设计有用的新知识.不应该无视一路走来所吸取的教训,而应该将它们用于软件的重新设计(或重构)中. 灵活性的实现包括许多方面,下面是其中两个: 原型设计:python最棒的功能之一就是可以快速地编写程序.编写原型程序是更充分地了解问题的一种很好的方法. 配置:灵活性有很多种存在形式.配置的目的就是让程序某部分的改变更简单,对于你和用户来说都是这样. 第三点是

python基础教程_学习笔记17:标准库:一些最爱——time

标准库:一些最爱 time time模块所包含的函数能够实现以下功能: 获取当前时间.操作系统时间和日期.从字符串读取时间以及格式化时间为字符串. 日期可以用实数(从"新纪元"的1月1日0点开始计算到现在的秒数,新纪元是一个与平台相关的年份,对unix来说是1970年),或者是包含有9个整数的元组. 日期元组的字段含义 如元组: (2008,1,21,12,2,56,0,21,0) 表示2008年1月21日12时2分56秒,星期一,且是当年的第21天(无夏令时). 索引 字段 值 0

python基础教程_学习笔记2:序列-2

序列-2 通用序列操作 序列相加 通过加号对列表进行连接操作: 列表 >>> [1,3,4]+[2,5,8] [1, 3, 4, 2, 5, 8] 字符串 >>> '134'+'258' '134258' 元组 >>> (1,2,3)+(2,5,8) (1, 2, 3, 2, 5, 8) 元素数据类型不同的列表 >>> [[1,3],[3,9]]+[[2,2],'abc'] [[1, 3], [3, 9], [2, 2], 'abc'

Python装饰器的学习笔记(转载)

Python装饰器的学习笔记 2017-05-18 程序员共读 来自:标点符的<Python装饰器的学习笔记> 链接:http://www.biaodianfu.com/python-decorator.html 原文:http://stackoverflow.com/questions/739654/how-to-make-a-chain-of-function-decorators-in-python#answer-1594484 装饰器(decorator)是一种高级Python语法.可

python之raw_input()(学习笔记六)

python之raw_input()(学习笔记六) 我们经常使用raw_input()读取用户的输入,如下例子所示: >>> name = raw_input('please input your name:'),截图如下: 下面简单说下,raw_input()与if搭配使用,脚本如下: #!/usr/bin/env python # -*- coding:utf-8 -*- birth = raw_input('birth:') if birth < 2000: print '0

python基础教程_学习笔记23:图形用户界面

图形用户界面 丰富的平台 在编写Python GUI程序前,需要决定使用哪个GUI平台. 简单来说,平台是图形组件的一个特定集合,可以通过叫做GUI工具包的给定Python模块进行访问. 工具包 描述 Tkinter 使用Tk平台.很容易得到.半标准. wxpython 基于wxWindows.跨平台越来越流行. PythonWin 只能在Windows上使用.使用了本机的Windows GUI功能. JavaSwing 只能用于Jython.使用本机的Java GUI. PyGTK 使用GTK