1. 准备工作

下载安装Oracle instant client

先在”开始“里搜一下有没有instantclient这个文件夹,如果有的话,就不用下载。

oracle instant client 64bit官方下载地址

选择12.2的base package。下载钱可以看一下自己是不是64bit

cx_Oracle 下载安装

现尝试在terminal 里输入pip install cx_Oracle

如果报错的话,可以到官方下载适合自己的版本。

下载地址:https://pypi.org/project/cx-Oracle/#files

要根据自己的电脑数位,和python版本选择相应的whl文件。

(cp37对应的是python 3.7)

下载完之后,打开cmd进入到whl文件所在的目录。输入:

pip install cx_Oracle-8.0.0-cp37-cp37m-win_amd64.whl

后面改成你文件的名称

查看自己的环境 & 配置

在“开始”搜tnsnames.ora 打开这个文件可以看自己的部分参数

数据库的ip

默认是172.0.0.1

oracle 用户名 密码

如果自己没有建,默认的是:

用户名:system 密码:manager

port端口

默认是1521

service name(database name)

默认是orcl

sql上准备一个可以query的table

2. Python上的操作

链接db

import cx_Oracle

db = oracle.connect('username/password@127.0.0.1:1521/orcl')

#这里替换成自己的用户名和密码

# 如果不是本地数据库的话,127.0.0.1和端口也要更改

# orcl改成自己的service_name

# username/password@ip_address:port/service_name

print("successfully connected to oracle database")

query

query = "select * from table_name"

cursor = db.cursor() # 创建cursor

cursor.execute(query)

data = cursor.fetchall()

# 如果只要一行的话 fetchall改成fetchone()

cursor.close() #记得关cursor和db

db.close()

输出的data长这样,可以直接变成pandas dataframe

[(63133, '6406', '83237', '1', '95471', '170.0'),

(313401, '6406', '83237', '1', '87331', '199.0'),

(248909, '392', '83237', '1', '32233', '38.0'),

(208458, '392', '83237', '1', '174374', '139.0')]

保存到本地csv

import pandas as pd

df = pd.DataFrame(data)

df.to_csv(filename)

table表头问题

cursor没办法顺带显示表格抬头,需要通过另外一个query找到表格的column heads:

sql里的query

select COLUMN_NAME

from user_tab_columns

where TABLE_NAME='TABLE_NAME';

python里:

table_name = "AD_FEATURE" #这里替换成自己的table name

query = "select * from" + table_name

cursor = db.cursor()

cursor.execute(query)

data = cursor.fetchall()

print(data)

#获取表头

columnsname = cursor.execute(

"select COLUMN_NAME from user_tab_columns where TABLE_NAME='"+table_name+"'").fetchall()

# 注意table name必须全部大写

df = pd.DataFrame(data)

df.columns = [i[0] for i in columnsname]

display(df)

输出:

但是还是没有办法解决如果query涉及到多个table,该如何显示抬头。

edit:已解决 请查看这篇文章

如何查看column heads

python oracle query,python链接oracle/plsql数据库 ,查询功能(query) 用cursor fetchall相关推荐

  1. DOTNET零碎要点---1.vb.net利用Oracle.DataAccess.dll链接Oracle数据库

    1.vb.net利用Oracle.DataAccess.dll链接Oracle数据库 DOTNET学习笔记---1.vb.net利用Oracle.DataAccess.dll链接Oracle数据库 2 ...

  2. rowbounds分页oracle,Oracle使用MyBatis中RowBounds实现分页查询功能

    Oracle中分页查询因为存在伪列rownum,sql语句写起来较为复杂,现在介绍一种通过使用MyBatis中的RowBounds进行分页查询,非常方便. 使用MyBatis中的RowBounds进行 ...

  3. 关于数据库查询时报“query block has incorrect number of result columns”

    原SQL语句 select user_id id, user_name xm, login_id, jgbm, password, '1' logintype, '' zplj from sc_use ...

  4. Python 3.6.5 -实现简单的历史记录查询功能

    在简单的猜数字小游戏中,添加历史记录,让用户可以查看最新猜过的数字(最多n条) **实现方案: 使用容量为n的队列存储历史记录 使用标准库collections中的deque,它是一个双端循环队列. ...

  5. PgAdmin中的数据库查询功能

    参考博客:https://blog.csdn.net/qq_28289405/article/details/80249509?utm_medium=distribute.pc_relevant.no ...

  6. oracle查效能,【DataGuard】Oracle 11g物理Active Data Guard实时查询(Real-time query)特性...

    在Oracle 11g以前版本中的的Data Guard物理备用数据库,可以以只读的方式打开数据库,但此时Media Recovery利用日志进行数据同步的过程就停止了,如果物理备用数据库处于恢复的过 ...

  7. oracle pl sql developer 教程,plsql developer怎么使用 plsql developer图文使用教程

    plsql developer相信是编程朋友经常接触的一款Oracle数据开发工具.plsql developer的功能也是相当强大的,下面小编就为大家简单介绍一下plsql developer怎么使 ...

  8. .net跨防火墙链接oracle连接池链接长时间无通讯数据被断开后报错问题解决

    环境: .net 4.0以上使用Oracle.ManagedDataAccess组件链接oracle数据库,应用程序与数据库之间存在硬件防火墙. 症状:应用程序启动后正常访问,如果出现长时间无数据库请 ...

  9. oracle查效能,Oracle 11g物理Active Data Guard实时查询(Real-time query)特性

    table t (x varchar2(8)); Table created. secooler@ora11g> insert into t values ('Secooler'); 1 row ...

  10. 数据库查询构建控件集Active Query Builder

    2019独角兽企业重金招聘Python工程师标准>>> 关键字:数据库,数据库管理,数据库查询,生成器,控件 Active Query Builder是一款数据库查询构建控件集,用于 ...

最新文章

  1. 踏向星辰的少年|敢与自己开“杠”,才能和一群人开挂
  2. mysql 中lock wait_应用中MYSQL 报错Lock wait timeout exceeded; try restarting transaction
  3. 渗透测试中的文件传输技巧
  4. 可以获取python整数类型帮助的是什么-下列选项中可以获取Python整数类型帮助的是...
  5. 用树莓派获取天气状况
  6. Microsoft Power BI Desktop概念学习系列之Microsoft Power BI Desktop的官网自带示例数据(图文详解)...
  7. python 主函数 输入
  8. pandas 按照固定的列顺序排序,并补足缺失列
  9. 向量空间模型(VSM)--用于计算文本相似度
  10. 运算符重载——关系运算符重载
  11. 利用 OpenMP 实现埃拉托斯特尼(Eratosthenes)素数筛法并行化
  12. [转载] Python字典中items()和iteritems()区别
  13. (jdbc和cmd)sqlite数据迁入mysql(导入导出)
  14. [WM]怎么让应用程序更省电
  15. linux修改max user processes limits
  16. matlab中怎么计算信噪比,[转载]Matlab中如何计算信噪比?
  17. 中国车牌数据集以及车牌识别代码
  18. 大数据时代的医学公共数据库与数据挖掘技术简介
  19. 所有图形得面积和周长公式
  20. 纪念一下学写pipeline时脑子里的坑

热门文章

  1. 搜索图片的干货网站?
  2. UI设计的扁平化图标模板素材
  3. java 筛选地区语句_Java选择语句
  4. 成都信息工程大学c语言题库,成都信息工程学院C语言考试题及答案.docx
  5. Virtio-blk Performance Improvement
  6. TCP三次握手四次挥手(图解)
  7. Docker Hello World
  8. 可以查python题的_Python练习题4.9查询水果价格
  9. 小程序突然报module is not defined_菲尔德睡前英语小故事 | 狼来了
  10. VUE3 Router路由