Python实战之Oracle数据库操作

1. 要想使Python可以操作Oracle数据库,首先需要安装cx_Oracle包,可以通过下面的地址来获取安装包

[plain] view plain copy

  1. http://cx-oracle.sourceforge.net/

2. 另外还需要oracle的一些类库,此时需要在运行python的机器上安装Oracle Instant Client软件包,可以通过下面地址获得

[plain] view plain copy

  1. http://www.oracle.com/technetwork/database/features/instant-client/index-097480.html

找到符合自己平台的包,然后安装,这里我使用的是rpm包,所以使用以下命令安装

[plain] view plain copy

  1. $ sudo rpm -ivh  oracle-instantclient11.2-basic-11.2.0.3.0-1.i386.rpm

装完毕后还需要设置一下环境变量,如下

[plain] view plain copy

  1. $ export LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:/usr/lib/oracle/11.2/client/lib

3. 创建一个简单的python文件,测试安装是否成功

[python] view plain copy

  1. import cx_Oracle
  2. conn = cx_Oracle.connect(‘fkong/[email protected]/orcl‘)
  3. cursor = conn.cursor ()
  4. cursor.execute ("select * from dual")
  5. row = cursor.fetchone ()
  6. print row[0]
  7. cursor.close ()
  8. conn.close ()

4. 下面看一个数据库建表和插入操作

[python] view plain copy

  1. import cx_Oracle
  2. conn = cx_Oracle.connect(‘fkong/[email protected]/orcl‘)
  3. cursor = conn.cursor ()
  4. cursor.execute ("CREATE TABLE TEST(ID INT, COL1 VARCHAR(32), COL2 VARCHAR(32), COL3 VARCHAR(32))")
  5. cursor.execute ("INSERT INTO TEST (ID, COL1, COL2, COL3)VALUES(1, ‘a‘, ‘b‘, ‘c‘)")
  6. cursor.execute ("INSERT INTO TEST (ID, COL1, COL2, COL3)VALUES(2, ‘aa‘, ‘bb‘, ‘cc‘)")
  7. cursor.execute ("INSERT INTO TEST (ID, COL1, COL2, COL3)VALUES(3, ‘aaa‘, ‘bbb‘, ‘ccc‘)")
  8. conn.commit()
  9. cursor.close ()
  10. conn.close ()

5. 下面再来看看查询,查询通常有两种方式:一种是使用cursor.fetchall()获取所有查询结果,然后再一行一行的迭代;另一种每次通过cursor.fetchone()获取一条记录,直到获取的结果为空为止。看一下下面的例子:

[python] view plain copy

    1. import cx_Oracle
    2. conn = cx_Oracle.connect(‘fkong/[email protected]/orcl‘)
    3. cursor = conn.cursor ()
    4. cursor.execute ("SELECT * FROM TEST")
    5. rows = cursor.fetchall()
    6. for row in rows:
    7. print "%d, %s, %s, %s" % (row[0], row[1], row[2], row[3])
    8. print "Number of rows returned: %d" % cursor.rowcount
    9. cursor.execute ("SELECT * FROM TEST")
    10. while (1):
    11. row = cursor.fetchone()
    12. if row == None:
    13. break
    14. print "%d, %s, %s, %s" % (row[0], row[1], row[2], row[3])
    15. print "Number of rows returned: %d" % cursor.rowcount
    16. cursor.close ()
    17. conn.close ()
时间: 2024-11-05 20:38:50

Python实战之Oracle数据库操作的相关文章

基于OCILIB的oracle数据库操作总结及自动生成Model和Dao的工具

基于OCILIB的oracle数据库操作总结 1.       类图 2.       基类BaseOCIDao的设计与实现 BaseOCIDao.h头文件 #pragma once /* --------------------------------------------------------------------------------------------- * * INCLUDES * ----------------------------------------------

查询ORACLE数据库操作记录

代码: SELECT a.First_Load_Time,        a.Sql_Text,        s.Sid,        s.Serial#,        s.Program --,        ,        a.* --       Utl_Inaddr.Get_Host_Address(s.Terminal) Ip   FROM V$sqlarea a, V$session s  WHERE s.Sql_Address(+) = a.Address    AND U

C# Oracle数据库操作类实例详解

本文所述为C#实现的Oracle数据库操作类,可执行超多常用的Oracle数据库操作,包含了基础数据库连接.关闭连接.输出记录集.执行Sql语句,返回带分页功能的dataset .取表里字段的类型和长度等,同时还有哈稀表自动插入数据库等高级任务.需要特别指出的是:在执行SQL语句,返回 DataReader之前一定要先用.read()打开,然后才能读到数据,再用hashTable对数据库进行insert,update,del操作,注意此时只能用默认的数据库连接"connstr". 本文

oracle数据库操作语句

常用到的oracle数据库操作语句,以下仅供参考: 一. 查询 1.查询某个数据库表大于某个日期的所有数据条数    select count(*) from ALARM_LOG t where t.ALARM_START_TIME> to_date('2017-01-10 08:00:00','yyyy-mm-dd hh24:mi:ss');   查询某个数据库表大于某个日期的所有历史数据  select * from ALARM_LOG t where t.ALARM_START_TIME>

(转)C# Oracle数据库操作类

原文地址:http://www.cnblogs.com/haibing0107/p/6143922.html using System;using System.Data;using System.Collections.Generic;using System.Configuration;using System.Data.OracleClient;using System.Text;using System.IO; /// <summary>  /// Oracle数据库操作类  ///

Oracle数据库操作知道

SELECT TGTID,PHONENUM,REGISTERDATE ,to_date(REGISTERDATE,'YYYY-MM-DD HH24:MI:SS') AS T FROM WTRESSENWEB.T_AXMALL_COMMONCLIENT WHERE TGTID = '2087' AND to_date(REGISTERDATE,'YYYY-MM-DD HH24:MI:SS') > to_date('2014-07-09','yyyy-mm-dd'); 对于to_char() to_

oracle数据库 操作clob对象

clob类型,但对于这个类型处理起来还是比较麻烦的,varchar2长度为4000bytes,如果varchar2能满足楼主的需求,建议使用varchar2,下面提供了在Java 中读取clob类型的方式,我主要讲的是JDBC的操作,Hibernate目前不讲,操作这个Clob列主要分为插入和获取俩个操作:1.Java程序插入Clob值到Oracle数据库表中:   String clob= "这里主要是要插入到表中的值";     //前面具体数据库连接代码这里省略,直接进正题  

Oracle 数据库操作

---恢复内容开始--- 现在大型企业一般都用Oracle数据库,Oracle数据库在一般采用expdp,impdp 导出导入数据,但是在操作中经常会遇到一些问题.下面来浅析这些问题. 1. 导出数据 一般导出数据的时候需要建立一个目录地址 select * from dba_directories; --查询所有目录地址create or replace directory winqt_dump as '/home/front/dmpfile'; --创建目录地址grant read,writ

《metasploit渗透测试魔鬼训练营》靶机演练之第五章实战案例Oracle数据库

准备一台BT5作为入侵机,一台win2003作为靶机,靶机上存在着Oracle数据库(版本为10.2.0.1.0)TNS服务的漏洞,该漏洞的编号为CVE-2009-1979. BT5: ip 10.10.10.128 win2003: ip 10.10.10.130 下面开始演练: 在网上找到了关于这一漏洞的一些介绍,metasploit里有利用这个漏洞的模块,首先search这个模块: 进入目录去查看一下这个模块的源代码,找到target,如图: 能看出用了p/p/r的溢出方式,以及不同版本需