连接oracle数据库
一、连接oracle数据库
一、windows环境
oracle windows客户端下载地址:http://www.oracle.com/technetwork/topics/winx64soft-089540.html
1、首先需要安装好oracle数据库,本机适用plsql连接数据库正常,记录下数据库名称
oracle连接工具下载地址:https://www.allroundautomations.com/bodyplsqldevreg.html

2、安装cx_oracle模块
pip install cx_Oracle
3、python中引入模块
import cx_Oracle as cx
4、测试
conn = cx.connect('sys/password@localhost/orcl')
cursor = conn.cursor ()
cursor.execute ("select * from dual")
row = cursor.fetchone ()
print (row)
cursor.close ()
conn.close ()
二、Linux环境
1、涉及软件包
1、cx_Oracle
下载地址:http://sourceforge.net/projects/cx-oracle/files/?source=navbar
我下载的是的cx_Oracle-5.1.2.tar.gz
2、Oracle_client
使用cx_Oracle必须要安装Oracle_client端,或者你已经安装了Oracle数据库。
下载地址:http://www.oracle.com/technetwork/topics/linuxx86-64soft-092277.html
以连接Oracle11为例需要下载以下rpm包:
oracle-instantclient11.2-basic-11.2.0.4.0-1.x86_64.rpm
oracle-instantclient11.2-jdbc-11.2.0.4.0-1.x86_64.rpm
oracle-instantclient11.2-sqlplus-11.2.0.4.0-1.x86_64.rpm
oracle-instantclient11.2-devel-11.2.0.4.0-1.x86_64.rpm
oracle-instantclient11.2-odbc-11.2.0.4.0-1.x86_64.rpm
oracle-instantclient11.2-tools-11.2.0.4.0-1.x86_64.rpm
软件包都下载完后,我们开始来安装。
2、源码安装
1、Oracle_client端安装:
# rpm -ivh oracle-instantclient11.2-basic-11.2.0.4.0-1.x86_64.rpm oracle-instantclient11.2-jdbc-11.2.0.4.0-1.x86_64.rpm oracle-instantclient11.2-sqlplus-11.2.0.4.0-1.x86_64.rpm oracle-instantclient11.2-devel-11.2.0.4.0-1.x86_64.rpm oracle-instantclient11.2-odbc-11.2.0.4.0-1.x86_64.rpm oracle-instantclient11.2-tools-11.2.0.4.0-1.x86_64.rpm
# echo /usr/lib/oracle/11.2/client64/lib/ >> /etc/ld.so.conf
# ldconfig
如果不进行ldconfig配置,在运行cx_Oracle时会报以下错误:
ibclntsh.so.11.1: cannot open shared object file: No such file or directory
2、设置相应用户的环境变量:
在这里需要说明下,你使用哪个帐户装cx_Oracle就需要配置哪个帐户的环境变量,以下已root帐户为例;
如果不配置环境变量、或环境变量配置不正确,在安装cx_Oracle时,会报各种错误,比如说:
oci.h: No such file or directory #vi ~/.bashrc export TNS_ADMIN="/usr/lib/oracle"
export ORACLE_HOME="/usr/lib/oracle/11.2/client64"
export LD_LIBRARY_PATH="${LD_LIBRARY_PATH}:${ORACLE_HOME}/lib"
export PATH="${PATH}:${ORACLE_HOME}" #source ~/.bashrc
3、源码安装
#tar -zxvf cx_Oracle-5.1.2.tar.gz
#cd cx_Oracle-5.1.2
#python setup.py install
4、安装成功后相应检查
[root@HAProxy01 Scripts]# python Python 3.3.0 (default, Sep 14 2017, 14:53:20) [GCC 4.8.5 20150623 (Red Hat 4.8.5-11)] on linux Type "help", "copyright", "credits" or "license" for more information. >>> import cx_Oracle >>>
3、脚本实例:
#!/usr/bin/python
# -*- coding: UTF-8 -*- import cx_Oracle as db
import os
os.environ['NLS_LANG'] = 'SIMPLIFIED CHINESE_CHINA.UTF8' def queryOracle(sql):
username = "US_ORDER" #用户名
passwd = "******" #用户密码
host = "192.168.1.203" #服务器IP
port = "" #oracle端口
sid = "ORCL" #oracle的
dsn = db.makedsn(host, port, sid)
con = db.connect(username, passwd, dsn)
cur = con.cursor()
cur.execute(sql)
result = cur.fetchall()
cur.close()
con.close()
return result if __name__=="__main__":
sql = "select sysdate from dual" #需要执行的SQL
result = queryOracle(sql)
print(result)
执行结果:
[root@HAProxy01 Scripts]# ./check_oracle_tables.py [(datetime.datetime(2017, 9, 15, 12, 1, 51),)]
连接oracle数据库的更多相关文章
- java连接Oracle数据库
Oracle数据库先创建一个表和添加一些数据 1.先在Oracle数据库中创建一个student表: create table student ( id ) not null primary key, ...
- 记录排查解决Hubble.Net连接Oracle数据库建立镜像库数据丢失的问题
起因 前几天在弄Hubble连接Oracle数据库,然后在mongodb中建立一个镜像数据库; 发现一个问题,原本数据是11W,但是镜像库中只有6w多条; 刚开始以为是没运行好,又rebuild了一下 ...
- NodeJs连接Oracle数据库
nodejs连接oracle数据库,各个平台的官方详情文档:https://github.com/oracle/node-oracledb/blob/master/INSTALL.md 我的nodej ...
- jdbc连接oracle数据库
/*** 通过改变配置文件来连接不同数据库*/package com.xykj.jdbc; import static org.junit.Assert.*; import java.io.Input ...
- 用VS连接oracle数据库时ORA-12504错误
在用VS2008连接oracle数据库时,可能会出现: ORA-12504: TNS: 监听程序在 CONNECT_DATA 中未获得 SERVICE_NAME 只需在web.config文件Data ...
- ASP.NET连接Oracle数据库的步骤详解(转)
ASP.NET连接Oracle数据库的步骤详解 本文我们主要介绍了ASP.NET连接Oracle数据库的步骤及每个步骤需要进行的设置,希望能够对您有所帮助. 在用ASP.NET开发应用程序时, ...
- 64 位win 7或windows 8下的visual studio不能连接Oracle数据库调试网站的问题
在64 位win 7或windows 8系统下,visual studio直接F5运行网站调试,你会发现不能连接Oracle数据库,会报一个“ORA-06413: Connection not ope ...
- [原创]安装Oracle 11gR2,以及如何在win8下使用plsql develper连接Oracle数据库 ,在这里和大家分享下
一,关于win8下安装Oracle 11gR2 1.我下载的是Oracle_11gR2_win64.其中有两个包: 注意:在解压了之后将:win64_11gR2_database_2of2\datab ...
- 用Navicat连接Oracle数据库时报错ORA-28547:connection to server failed,probable Oracle Net admin error
用Navicat连接Oracle数据库时出现如下错误 上网一查原来是oci.dll版本不对.因为Navicat是通过Oracle客户端连接Oracle服务器的,Oracle的客户端分为两种,一种是标准 ...
- JDBC连接Oracle数据库的问题
场景:最近做一个java web项目,使用jdbc连接Oracle数据库,遇到了两个问题. 问题1:jdbc连接不上Ubuntu Oracle服务器? 后来发现这个问题的原因是由于连接字符串写错了,修 ...
随机推荐
- 12、Grafan 4.3升级到Grafana 5.0
Upgrading Grafana 升级Grafana We recommend everyone to upgrade Grafana often to stay up to date with t ...
- redis-hash操作
hset(name, key, value) # name对应的hash中设置一个键值对(不存在,则创建:否则,修改) # 参数: # name,redis的name # key,name对应的has ...
- 小程序 -- ui布局
Flex布局 相对定位和绝对定位 弹性盒模型 display flex-direction flex-wrap :nowrap(不换行)/ wrap(换行,第一行在上方)/ wrap-reverse ...
- ansible的logging模块用来写日志
[root@node-1 library]# cat dolog.py #!/bin/env python ANSIBLE_METADATA = { 'metadata_version': 'alph ...
- python——常见排序算法解析
算法是程序员的灵魂. 下面的博文是我整理的感觉还不错的算法实现 原理的理解是最重要的,我会常回来看看,并坚持每天刷leetcode 本篇主要实现九(八)大排序算法,分别是冒泡排序,插入排序,选择排序, ...
- 基于Python & Opencv 图像-视频-处理算法
Alg1:图像数据格式之间相互转换.png to .jpg(其他的请举一反三) import cv2 import glob def png2jpg(): images = glob.glob('*. ...
- 使用httpclient访问NLP应用接口例子
参考网址: http://yuzhinlp.com/docs.html 接入前须知 接入条件 1.进入网站首页,点击注册成为语知科技用户 2.注册完成后,系统将提供语知科技用户唯一标识APIKey,并 ...
- java日志规约及配置示例终极总结
目录 什么是日志 常用日志框架 日志级别详解 日志的记录时机 日志使用规约 logback 配置示例 loh4j2 配置示例 什么是日志? 简单的说,日志就是记录程序的运行轨迹,方便查找关键信息,也方 ...
- vim编辑器操作命令
vim [参数] [文件 ..] 编辑指定的文件 或: vim [参数] - 从标准输入(stdin)读取文本 或: vim [参数] -t ...
- YII2 用 in查询的时候出现无结果, 删除某些值后查询有结果 提前sort数组即可
YII2 用 in查询的时候出现无结果, 删除某些值后查询有结果, 在数组前用了一个 array_merge 合并了2个数组. 排查发现是 数组中键值没有挨着从0开始 另外没有从小到大, 没观察室哪个 ...