python oracle使用心得
Oracel安装(windows 64位)
1. 首先确定版本。
2. 下载instantclient,下载地址:http://www.oracle.com/technetwork/database/features/instant-client/index-097480.html

解压到指定目录,加入环境变量
变量名 ORACLE_HOME

变量名 TNS_ADMIN

变量名 NLS_LANG
SIMPLIFIED CHINESE_CHINA.ZHS16GBK

变量名 Path

在解压的oracle目录instantclient_11_2/network/admin创建tnsnames.ora文件,写入连接数据库地址
3. 下载cx_Oracle, 这个是一个Python的扩展包,用来访问Oracle数据库的。 https://pypi.python.org/pypi/cx_Oracle/5.2.1
Oracel安装(centos 6.6)
1. 首先确定版本。
2. 下载instantclient-basic。下载地址:http://www.oracle.com/technetwork/database/features/instant-client/index-097480.html
instantclient-basic-linux.x64-11.2.0.4.0.zip
instantclient-sdk-linux.x64-11.2.0.4.0.zip
instantclient-sqlplus-linux.x64-11.2.0.4.0.zip

3. 安装和环境变量配置
unzip instantclient-basic-linux.x64-11.2.0.4.0.zip
unzip instantclient-sdk-linux.x64-11.2.0.4.0.zip
unzip instantclient-sqlplus-linux.x64-11.2.0.4.0.zip
instantclient_11_2目录下network/admin创建tnsnames.ora文件,写入连接数据库地址
export ORACLE_HOME=/home/oracle/instantclient_11_2
export PATH=$ORACLE_HOME:$PATH
export TNS_ADMIN=$ORACLE_HOME/network/admin
export LD_LIBRARY_PATH=$ORACLE_HOME:$LD_LIBRARY_PATH
export NLS_LANG=AMERICAN_AMERICA.ZHS16GBK
创建软连接
ln -s /home/oracle/instantclient_11_2/libclntsh.so.11.1 /home/oracle/instantclient_11_2/libclntsh.so
4. 下载cx_Oracle, 这个是一个Python的扩展包,用来访问Oracle数据库的。 https://pypi.python.org/pypi/cx_Oracle/5.2.1
tar -xvf cx_Oracle-5.2.1.tar.gz
cd cx_Oracle-5.2.1
python setup.py install
5.导入测试
import cx_Oracle
代码
# -*- coding: utf-8 -*- import cx_Oracle
from east_web import settings
from east_web.log_config import django_logger as logger class Oracle(object): def __init__(self):
self.__username = settings.ORACLE_CONN['USERNAME']
self.__password = settings.ORACLE_CONN['PASSWORD']
self.__host = settings.ORACLE_CONN['HOST']
self.__port = settings.ORACLE_CONN['PORT']
self.__tnsname = settings.ORACLE_CONN['TNSNAME']
self.cursor = self.connect() def connect(self):
"""
连接数据库, 获取游标
语法: cx_Oracle.connect('username','pwd','IP/HOSTNAME:PORT/TNSNAME')
或
cx_Oracle.makedsn(IP,PORT,TNSNAME)
cx_Oracle.connect(username,pwd,dsn)
"""
try:
dsn = cx_Oracle.makedsn(self.__host, self.__port, self.__tnsname)
conn = cx_Oracle.connect(self.__username, self.__password, dsn)
# self.__conn = cx_Oracle.connect(self.__username, self.__password,
# self.__host + ':' + self.__port + '/' + self.__service_name)
cursor = conn.cursor()
return cursor
except Exception as err:
logger.error(err) def ogg_process_lag(self, sql):
"""
:param sql:
:return: 执行sql
"""
self.cursor.execute(sql) def fetchone(self):
"""
:return: 返回第一条数据
"""
res_one = self.cursor.fetchone()
return res_one def fetchmang(self, n):
"""
:param n:
:return: 返回第n条数据
"""
res_mang = self.cursor.fetchmany(n)
return res_mang def fetchall(self):
"""
:return: 返回所有数据
"""
res_all = self.cursor.fetchall()
return res_all def main():
oracle = Oracle()
oracle.ogg_process_lag("SELECT * FROM table")
print oracle.fetchmang(7) if __name__ == '__main__': main()
python oracle使用心得的更多相关文章
- python urllib2使用心得
python urllib2使用心得 1.http GET请求 过程:获取返回结果,关闭连接,打印结果 f = urllib2.urlopen(req, timeout=10) the_page = ...
- java python oracle推断字符串是否为数字的函数
java public boolean isNumeric(String str){ Pattern pattern = Pattern.compile("^-?[0-9]+\\.?[0-9 ...
- 安装Oracle数据库心得
学到Oracle数据库了,想在自己电脑上安装个Oracle数据库.在网上下载了一个Oracle18c版 下边是我安装Oracle18c版的数据库失败,后来在卸载过程中遇到的问题: 1.用Univers ...
- Python oracle乱码问题
Python使用cx_oracle连接oracle查询汉字时出现乱码 解决方式: import os os.environ['NLS_LANG'] = 'SIMPLIFIED CHINESE_CHIN ...
- Python Oracle数据库监控
有的时候无法使用Oracle自带的OEM监控,那么就需要确定一个监控方案. 此方案,使用Python+Prometheus+Grafana+Oracle 1.监控配置表 -- Create table ...
- Python unittest模块心得(一)
关于unittest模块的一些心得,主要是看官网的例子,加上一点自己的理解,官网地址:https://docs.python.org/3.6/library/unittest.html 基础概念介绍: ...
- python爬虫学习心得:中国大学排名(附代码)
今天下午花时间学习了python爬虫的中国大学排名实例,颇有心得,于是在博客园与各位分享 首先直接搬代码: import requests from bs4 import BeautifulSoup ...
- Python树莓派 爬虫心得
平台: 树莓派 linux 语言:python 搞一个爬虫都清楚是怎么回事,我这里玩过之后有下面的心得: 为什么要用树莓派呢,省电啊,没乱七八糟的桌面问题,可以一直开着. 1.树莓派上的磁盘写入对于不 ...
- python模块学习心得
初始模块 1.什么是模块 模块是用来实现某项功能的一大堆代码,为什么会有模块呢?过程式编程的时候为了减少程序员编程代码的重复性,就利用函数的调用减少了代码的重复性,但是某些时候程序会过于的庞大,我们会 ...
随机推荐
- cocos2d-x学习记录6——自定义Button
cocos2d-x中封装CCMenuItem等相关按钮,但是有些时候需要自己封装按钮,这样能够更加灵活的实现对应功能. 自定义Button,需要重写OnEnter()和onExit()函数,并在对应函 ...
- HTML快速入门(一)
一.HTML 是什么? HTML 指的是超文本标记语言 (Hyper Text Markup Language) HTML 不是一种编程语言,而是一种标记语言 (markup language) 标记 ...
- nginx 新增域名访问
nginx 新增域名访问 1.申请阿里云域名 2.指向阿里云主机 3.配置nginx文件 server { listen 80; server_name zlx.test.com; set $root ...
- cbuild-一个创建和管理C++项目的工具
cbuild-一个创建和管理C++项目的工具 介绍: 这是个人开发的一个管理C++项目的工具,用shell脚本编写. 可能会不定期更新,也欢迎大家一起完善. 当前开发版本0.5.各版本功能如下: ve ...
- tensorflow 曲线拟合
tensorflow 曲线拟合 Python代码: import numpy as np import tensorflow as tf import matplotlib.pyplot as plt ...
- 1065 A+B and C
同样是一题会产生溢出的题,不同的是这个用大数类很麻烦,因为有负数的可能性 不妨利用溢出的特性来解题:两个整数和为负数 或者 两个负数和为正数,那么就溢出了. #include<bits/stdc ...
- PAT甲题题解-1055. The World's Richest (25)-终于遇见一个排序的不水题
题目简单,但解题的思路需要转换一下,按常规思路肯定超时,推荐~ 题意:给出n个人的姓名.年龄和拥有的钱,然后进行k次查询,输出年龄在[amin,amx]内的前m个最富有的人的信息.如果财富值相同就就先 ...
- PAT甲题题解-1109. Group Photo (25)-(模拟拍照排队)
题意:n个人,要拍成k行排队,每行 n/k人,多余的都在最后一排. 从第一排到最后一排个子是逐渐增高的,即后一排最低的个子要>=前一排的所有人 每排排列规则如下: 1.中间m/2+1为该排最高: ...
- linux内核分析第一次实验
http://blog.sina.com.cn/s/blog_78e559950102wneg.html
- Mac用户抓包软件Charles 4.0 破解 以及 抓取Https链接设置
相信大家曾经都是Window的用户,作为前端哪能没有一款抓包工具,抓包工具可以非常便捷的帮助我们分析接口返回报文数据,快速定位问题. 曾经横扫window用户的Fiddler便是我们的挚爱,然而,作为 ...