【Python Oracle】使用cx_Oracle 连接oracle的介绍

其实,cx_Oracle python module本身没啥多说的。我重点说一下在redhat上做cx_Oracle环境准备。


安装Oracle Client

我在oracle官网下载了oracle-instantclient11.2-basic-11.2.0.3.0-1.x86_64.rpm。

rpm -ivh oracle-instantclient11.2-basic-11.2.0.3.0-1.x86_64.rpm

安装cx_Oracle 模块

http://cx-oracle.sourceforge.net/,下载cx_Oracle-5.1.1-11g-py24-1.x86_64.rpm

rpm -ivh cx_Oracle-5.1.1-11g-py24-1.x86_64.rpm

 

配置环境变量

在.basah_profile里,配置加载oracle lib和指定TNS_Admin.

ORACLE_HOME=/usr/lib/oracle/11.2/client64
LD_LIBRARY_PATH=$ORACLE_HOME/lib:/usr/lib:/usr/local/lib
TNS_ADMIN=<TNS_Path>
export LD_LIBRARY_PATH
export TNS_ADMIN

在TNS_path的文件夹下,指定tnsnames.ora

ORALOCAL =
  (DESCRIPTION =
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = TCP)(HOST = 127.0.0.1)(PORT = 1521))
    )
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = oralocal)
    )
  )



 Run python Code

#! /usr/bin/python

import time
import cx_Oracle

print "Begin Time is:", time.asctime()

days = 5

current = time.time();
delTime = current - 3600*24*days;

timeDelTuple = time.localtime(delTime);

print "Delete Time is:", time.asctime(timeDelTuple)

delTimeStr = "%04d-%02d-%02d.%02d-%02d-%02d" % timeDelTuple[0:6];

sql = "update wisb ew set ew.status_id=4 where ew.wisb_id in (select w.wisb_id from wisb w where w.updated < to_date('" + delTimeStr + "','YYYY-MM-DD.HH24-MI-SS') and w.status_id in (2,6,8))";

print "SQL is:", sql;

connstr = "ODB/ODB@ORALOCAL"
conn = cx_Oracle.connect(connstr)

cur = conn.cursor()


cur.execute(sql)
 
print "Number of rows been updated is: ", cur.rowcount

conn.commit();

cur.close();

conn.close();

print "Complete Time is:", time.asctime()


 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值