通过cx_Oracle模块,连接Oracle数据库之后,可以做很多的操作和配置。例如批量查看百余台数据库实例的RMAN备份情况等,现在第一步,连接上Oracle数据库。

Python操作Oracle数据库

1、安装cx_Oracle模块

G:\Py>pip install cx_Oracle

2、安装oracle客户端

这里实验环境是: oracle 11.2.0.4版本。安装的客户端名称如下:

instantclient-basic-windows.x64-11.2.0.4.0.zip,非常要注意的问题。

  • 必须是64位。要一一匹配
  • 配置PATH路径。

我这里解压的客户端路径为:D:\PLSQL\instantclient_11_2

通过配置如下步骤:Control Panel -> System -> Advanced System Settings -> Advanced -> Environment Variables -> System Variables -> PATH。把D:\PLSQL\instantclient_11_2加入到系统变量的PATH变量中。

效果如下:

G:\Py>set
Path=C:\Program Files (x86)\Common Files\Oracle\Java\javapath;C:\Program Files (
x86)\Intel\iCLS Client\;C:\Program Files\Intel\iCLS Client\;C:\Windows\system32;
C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0\;
C:\Program Files (x86)\NVIDIA Corporation\PhysX\Common;C:\Program Files (x86)\In
tel\Intel(R) Management Engine Components\DAL;C:\Program Files\Intel\Intel(R) Ma
nagement Engine Components\DAL;C:\Program Files (x86)\Intel\Intel(R) Management
Engine Components\IPT;C:\Program Files\Intel\Intel(R) Management Engine Componen
ts\IPT;C:\Program Files\Intel\WiFi\bin\;C:\Program Files\Common Files\Intel\Wire
lessCommon\;C:\Program Files\Git\cmd;C:\Program Files\TortoiseGit\bin;D:\PLSQL\i
nstantclient_11_2;C:\Users\sdzhang\AppData\Local\Programs\Python\Python37\Script
s\;C:\Users\sdzhang\AppData\Local\Programs\Python\Python37\;C:\MinGW\bin;C:\Prog
ram Files (x86)\Diffuse;D:\PLSQL\instantclient_11_2;

可以看到之后有了D:\PLSQL\instantclient_11_2路径。

3、python操作oracle示例

import cx_Oracle

conn = cx_Oracle.connect('username/passwd@172.17.xx.204/instancename')
##conn = cx_Oracle.connect('system/xx@172.17.10.204/oradb')
curs = conn.cursor()
sql = 'select * from product_component_version'
curs.execute(sql) for result in curs:
print(result) curs.close()
conn.close()

另存为oracle01.py,执行效果如下:

G:\Py>python oracle01.py
('NLSRTL ', '11.2.0.4.0', 'Production')
('Oracle Database 11g Enterprise Edition ', '11.2.0.4.0', '64bit Production')
('PL/SQL ', '11.2.0.4.0', 'Production')
('TNS for Linux: ', '11.2.0.4.0', 'Production')

4、配置TNS

172.xxx.xxx.204 =
(description =
(address = (protocol = tcp)(host = 172.xxx.xxx.204)(port = 1521))
(connect_data =
(service_name = oradb)
)
)

5.通过tns连接数据库的python

import cx_Oracle

conn = cx_Oracle.connect('system/xx@172.17.10.204')
curs = conn.cursor()
sql = 'select * from dual'
curs.execute(sql) for result in curs:
print(result) curs.close()
conn.close()

另存为:oracle02.py,效果如下:

G:\Py>python oracle02.py
('X',)

简说python之初连ORACLE数据库的更多相关文章

  1. python使用cx_oracle连接oracle数据库

    http://www.oracle.com/technetwork/topics/linuxx86-64soft-092277.html---下载instantclient-basic-linux.x ...

  2. Python cx_oracle自动化操作oracle数据库增删改查封装,优化返回查询数据

    # coding=utf-8 import cx_Oracle import os import json os.environ['NLS_LANG'] = 'SIMPLIFIED CHINESE_C ...

  3. Oracle实例和Oracle数据库(Oracle体系结构)

    --========================================== --Oracle实例和Oracle数据库(Oracle体系结构) --==================== ...

  4. 【转载】Oracle实例和Oracle数据库(Oracle体系结构)

    免责声明:     本文转自网络文章,转载此文章仅为个人收藏,分享知识,如有侵权,请联系博主进行删除.     原文作者:Leshami      原文地址:http://blog.csdn.net/ ...

  5. oracle 数据库、实例、服务名、SID

    参考:http://www.zhetao.com/content240 在实际的开发应用中,关于Oracle数据库,经常听见有人说建立一个数据库,建立一个Instance,启动一个Instance之类 ...

  6. Oracle实例和Oracle数据库(Oracle体系结构)---转载

    对于初接触Oracle 数据库的人来讲,很容易混淆的两个概念即是Oracle 实例和Oracle 数据库.这两 概念不同于SQL sever下的实例与数据库,当然也有些相似之处.只是在SQL serv ...

  7. python3连接oracle数据库

    声明:python,cx_Oracle和instantclient的版本应一致 我这里使用的版本是python3.6 64位 ,cx_Oracle-5.3-11g.win-amd64-py3.6-2和 ...

  8. 【简说Python WEB】数据库

    目录 [简说Python WEB]数据库 数据库表 docker安装MySQL Flask-SQLAlchemy操纵MySQL数据库 初始化 定义模型 定义关系 数据库的CRUD操作 创建表 inse ...

  9. python——连接Oracle数据库

    前言 Python自带的模块中有很多操纵文件的.我们可以把文件的数据读出来,经过处理还可以将数据写入文件中.但是对于数据的管理和分析来说,数据库还是专业一些.如果Python能和数据库结合在一起,那么 ...

  10. python 连接oracle 数据库

    我们在测试中可能需要对oracle 数据库进行操纵,比如这样一个场景,在往oracle 里面插数据的同时,另一个工具从里面读,如何能保证读出来的数据是有顺序的,即:先插入进去的先读出来,根据这个场景们 ...

随机推荐

  1. Java字符串比较 == 和 equals方法的区别

    今天在排除一个bug的时候出现了一个很低级但是也很容易被忽视的错误,在此写了一个小例子做记录. 首先我先说一下错误的场景,我读取了一段json数据,并使用JSONObject的实例对象的getStri ...

  2. Python表格处理模块xlrd在Anaconda中的安装

      本文介绍在Anaconda环境下,安装Python读取.xls格式表格文件的库xlrd的方法.   xlrd是一个用于读取Excel文件的Python库,下面是xlrd库的一些主要特点和功能: 读 ...

  3. 7 HTML锚点应用

    7 锚点应用 锚点( anchor )是超链接的一种应用,也叫命名锚记,锚点可以像一个定位器一样,可以实现页面内的链接跳转,运用相当普遍.例如,我们有一个网页,由于内容太多,导致页面很长,而且里面的内 ...

  4. #KM算法#UVA1411 Ants

    题目 在一个平面直角坐标系中,有 \(n\) 个黑点,\(n\) 个白点. 给出一种二分图匹配的方案,使得没有两条由黑白点连接的线段相交 分析 如果线段都不相交,根据三角形的两边之和大于第三边,那么线 ...

  5. #单位根反演,二项式定理#LOJ 6485 LJJ 学二项式定理

    题目 \[\large\sum_{i=0}^nC(n,i)S^ia_{i\bmod 4} \] \(n\leq 10^{18},S,a\leq 10^8\) 分析 前面这一坨看起来就像是二项式定理,考 ...

  6. #树状数组#洛谷 4113 [HEOI2012]采花

    题目 分析 与HH的项链类似 离线处理询问,按右端点排序,维护最近的颜色和第二近的颜色,修改以第二近的颜色为准 换句话说,若最近颜色的位置为\(pos2\),第二近颜色的位置为\(pos1\) 加入一 ...

  7. Java处理关键字进行脱敏操作

    1.通过表头获取需要处理的下标列 注:此处导出表格时对关键字进行脱敏处理 /** * . * 对表头进行过滤判断 * * @param headers 表头 * @return 对应的下标列及方法名 ...

  8. 获取 BSTR 字符串长度

    BSTR a = L"hello world"; int len = SysStringByteLen(a);

  9. openGauss每日一练第四天

    openGauss 每日一练第四天 本文出处:https://www.modb.pro/db/193083 学习地址 https://www.modb.pro/course/133 学习目标 学习 o ...

  10. wandb一个简单demo

    wandb绘制曲线:sin函数,cos函数,log函数. wandb绘制本地图片 wandb绘制matplotlib图片 wandb绘制numpy图片 import math import wandb ...