一、连接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数据库的更多相关文章

  1. java连接Oracle数据库

    Oracle数据库先创建一个表和添加一些数据 1.先在Oracle数据库中创建一个student表: create table student ( id ) not null primary key, ...

  2. 记录排查解决Hubble.Net连接Oracle数据库建立镜像库数据丢失的问题

    起因 前几天在弄Hubble连接Oracle数据库,然后在mongodb中建立一个镜像数据库; 发现一个问题,原本数据是11W,但是镜像库中只有6w多条; 刚开始以为是没运行好,又rebuild了一下 ...

  3. NodeJs连接Oracle数据库

    nodejs连接oracle数据库,各个平台的官方详情文档:https://github.com/oracle/node-oracledb/blob/master/INSTALL.md 我的nodej ...

  4. jdbc连接oracle数据库

    /*** 通过改变配置文件来连接不同数据库*/package com.xykj.jdbc; import static org.junit.Assert.*; import java.io.Input ...

  5. 用VS连接oracle数据库时ORA-12504错误

    在用VS2008连接oracle数据库时,可能会出现: ORA-12504: TNS: 监听程序在 CONNECT_DATA 中未获得 SERVICE_NAME 只需在web.config文件Data ...

  6. ASP.NET连接Oracle数据库的步骤详解(转)

    ASP.NET连接Oracle数据库的步骤详解   本文我们主要介绍了ASP.NET连接Oracle数据库的步骤及每个步骤需要进行的设置,希望能够对您有所帮助.   在用ASP.NET开发应用程序时, ...

  7. 64 位win 7或windows 8下的visual studio不能连接Oracle数据库调试网站的问题

    在64 位win 7或windows 8系统下,visual studio直接F5运行网站调试,你会发现不能连接Oracle数据库,会报一个“ORA-06413: Connection not ope ...

  8. [原创]安装Oracle 11gR2,以及如何在win8下使用plsql develper连接Oracle数据库 ,在这里和大家分享下

    一,关于win8下安装Oracle 11gR2 1.我下载的是Oracle_11gR2_win64.其中有两个包: 注意:在解压了之后将:win64_11gR2_database_2of2\datab ...

  9. 用Navicat连接Oracle数据库时报错ORA-28547:connection to server failed,probable Oracle Net admin error

    用Navicat连接Oracle数据库时出现如下错误 上网一查原来是oci.dll版本不对.因为Navicat是通过Oracle客户端连接Oracle服务器的,Oracle的客户端分为两种,一种是标准 ...

  10. JDBC连接Oracle数据库的问题

    场景:最近做一个java web项目,使用jdbc连接Oracle数据库,遇到了两个问题. 问题1:jdbc连接不上Ubuntu Oracle服务器? 后来发现这个问题的原因是由于连接字符串写错了,修 ...

随机推荐

  1. Java基础try-with-resource语法源码分析

    众所周知,所有被打开的系统资源,比如流.文件或者Socket连接等,都需要被开发者手动关闭,否则随着程序的不断运行,资源泄露将会累积成重大的生产事故. 在Java的江湖中,存在着一种名为finally ...

  2. WPF 杂记

    1,跨屏最大化 单屏幕的时候我们可以设置 WindowState 来使应用最大化 当接多个屏幕的时候,就需要下面这个设置: private void FullScreen() { this.Windo ...

  3. const 成员函数

    我们知道,在成员函数中,如果没有修改成员变量,应该给成员函数加上 const 修饰符,例如 #include <iostream> using namespace std; class F ...

  4. BeautifulSoup总结

    1. 参考 Beautiful Soup 4.2.0 文档 Beautiful Soup Documentation (4.4.0 英文部分内容有别于4.2.0中文) CSS 选择器参考手册 阮一峰 ...

  5. SQL反模式学习笔记9 元数据分裂

    目标:支持可扩展性.优化数据库的结构来提升查询的性能以及支持表的平滑扩展. 反模式:克隆表与克隆列 1.将一张很长的表拆分成多张较小的表,使用表中某一个特定的数据字段来给这些拆分出来的表命名. 2.将 ...

  6. 99%的Linux运维工程师必须要掌握的命令及运用

    本为同步于微信公众号[IT行业技术圈]关注即可查看更多相关知识点~ Linux对于程序员来并不陌生,随着图形化界面的深入人心,渐渐地命令行开始淡出了我们的视野,随着时间的推移也变得生疏且陌生起来.在此 ...

  7. 当linux报 “-bash: fork: 无法分配内存”

    “-bash: fork: 无法分配内存”,发现连了好多终端,然后断开了一个终端,然后这边终端可以敲命令了 [root@172.16.31.105 /home/www/test]# free -m  ...

  8. Object 中 equals()使用

    详细看: https://www.cnblogs.com/naihuangbao/p/9445027.html 1. ==是判断两个变量或实例是不是指向同一个内存空间equals是判断两个变量或实例所 ...

  9. 2017-2018 ACM-ICPC, NEERC, Southern Subregional Contest

    A. Automatic Door 对于规律的点可以推公式计算,对于噪点则暴力计算,时间复杂度$O(m\log m)$. #include<stdio.h> #include<ios ...

  10. 【安全性测试】一个简单地绕前端暴XSS漏洞

    在appscan暴出一个关于跨站点脚本编制的漏洞,但是appscan并不能完整地显示该漏洞.于是,工具是否出现误报,需要通过自己手工验证. 然后,我们需要找到目标参数的包并分析是从哪个步骤提交给服务器 ...