【Oracle】python调取oracle数据教程

目录

(1)安装python和相关库

1.python的下载和安装

2.python安装cx_Oracle库和pandas库

3.本机安装instantclient 数据库客户端

先安装instantclient

然后设置环境变量

(2)准备好连接Oracle数据库地址等五项信息

(3)用python连接到Oracle数据库

1.测试连接情况

2.获取数据示例代码


(1)安装python和相关库

1.python的下载和安装

这个自行上网搜索。

2.python安装cx_Oracle库和pandas库

打开"命令提示符"

输入pip install pandas安装pandas库

输入pip install cx_Oracle安装cx_Oracle库

3.本机安装instantclient 数据库客户端

先安装instantclient

因为不安装这个后面会报错:cx_Oracle.DatabaseError: DPI-1047: Cannot locate a 64-bit Oracle Client library

下载地址:Oracle Instant Client Downloads

注意下载的版本位数,python是64位的instantclient 就下64位的,python是32位的instantclient 就下32位的

然后选择了Version 12.2.0.1.0,下载了basic和sqlplus压缩包

将两者解压到同一个文件夹oracle下,他们的内容会自己放在一起

解压好了就行,免安装的,可以直接用。记得自己解压的路径位置,做好管理。

然后设置环境变量

变量名:Path

变量值:D:\software\oracle\instantclient_21_9

变量名:ORACLE_HOME

变量值:D:\software\oracle\instantclient_21_9

变量名:TNS_ADMIN

变量值:D:\software\oracle\instantclient_21_9\network\admin

变量名:NLS_LANG

变量值:SIMPLIFIED CHINESE_CHINA.ZHS16GBK

(2)准备好连接Oracle数据库地址等五项信息

  • IP地址
  • 端口
  • 用户名
  • 密码
  • 数据库名

(3)用python连接到Oracle数据库

1.测试连接情况

以下代码简单进行连接操作,看能不能连接上

# test.py
import cx_Oracle
if __name__ == '__main__':
    # 连接到Oracle数据库,需用户名、密码、ip、端口和数据库名
    conn = cx_Oracle.connect('用户名', '密码', 'ip地址:端口/数据库名')
    # conn = cx_Oracle.connect('用户名/密码@ip地址:端口/数据库名')
    # conn = cx_Oracle.connect('用户名', '密码', 
    #                          cx_Oracle.makedsn('ip地址', '端口', None, '数据库名'))
    # 创建游标
    cursor = conn.cursor()
    print('连接数据库成功!')
    # 关闭游标和oracle数据库
    cursor.close()
    conn.close()

运行结果

2.获取数据示例代码

import cx_Oracle
import pandas as pd


if __name__ == '__main__':
    # 连接到Oracle数据库,需用户名、密码、ip、端口和数据库名
    conn = cx_Oracle.connect('username', 'password', 'ip:端口/数据库名')

    # 创建游标
    cursor = conn.cursor()

    # 撰写sql语句,需要什么字段就查询什么字段
    sql = 'select S_INFO_WINDCODE,ANN_DT from AShareANNFinancialIndicator'

    # 通过游标和sql获取数据
    test = cursor.execute(sql)
    # print(test.fetchmany(50)) # 前50行数据
    data = test.fetchall()  # 全部数据

    # 获取英文列名
    title = [i[0] for i in cursor.description]
    print(title)
    print(type(title))

    # 数据处理
    df = pd.DataFrame(data=data, columns=title)
    print(data)
    pass

    # 关闭游标和oracle数据库
    cursor.close()
    conn.close()

end

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/587483.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

C++的演变与未来:编程艺术的持续进化

在计算机编程的演变历程中,C以其独特的魅力和强大的功能,一直占据着不可或缺的地位。从最初的面向对象编程,到如今的跨平台、高性能应用,C在不断地适应和推动着计算机技术的发展。本文将深入剖析C的演变过程,展望其未来…

深入探索 C++ 中 string 的用法:从基础到实践

C String 用法详解 C中的 std::string 是一个非常强大且灵活的类,用于处理字符串。std::string 类是C标准库中的一部分,它提供了丰富的成员函数来执行各种字符串操作,如连接、比较、查找、替换等。在本篇博客中,我们将深入探索 s…

张大哥笔记:学什么都不如学赚钱

很多人总是这样认为:好好读书,考上好学校,将来可以找到一份不错的工作,这样的思想观念,可能会导致你一辈子都无法实现财富自由。 财富的多少,和你的努力程度没有直接关系。我们可以清楚看到那些每天辛苦劳动…

【Linux 系统】进程信号 -- 详解

⚪前言 注意:进程间通信中的信号量跟下面要讲的信号没有任何关系。 一、从不同角度理解信号 1、生活角度的信号 你在网上买了很多件商品,在等待不同商品快递的到来。但即便快递没有到来,你也知道快递来临时,你该怎么处理快递&a…

《MySQL对库的基本操作》

文章目录 一、查看数据库列表查看数据库中的所有表想知道当前处于哪个数据库里 二、创建一个数据库三、删除一个数据库知道两个集1.字符集2.校验集修改数据库的字符集和编码集 不同的校验码对数据库的影响四、数据库的备份与恢复注意事项:备份数据库中的表 总结 一、…

HTTP/1.1、HTTP/2、HTTP/3 的演变

HTTP/1.1、HTTP/2、HTTP/3 的演变 HTTP/1.1 相比 HTTP/1.0 提高了什么性能?HTTP/2 做了什么优化?HTTP/3 做了哪些优化? HTTP/1.1 相比 HTTP/1.0 提高了什么性能? HTTP/1.1 相比 HTTP/1.0 性能上的改进: 使用长连接的…

Python 在windows环境下加密文件成.pyd格式

首先 pip install easycython然后打开在要加密的文件同一目录下cmd命令框,命令行里键入 easycython 你要加密的文件.py 最后会在目录下看见有个.pyd的文件,只保留这个文件,剩下的都删了,其他引用该文件的python文件该咋用咋用。…

AI泳池溺水监测识别摄像机

AI泳池溺水监测识别摄像机是一种利用人工智能和机器视觉技术的创新设备,旨在确保游泳池安全,并及时识别溺水事件,以减少溺水事故的发生。这种摄像机利用高清摄像头和AI算法,能够实时监测泳池中的情况,并自动识别溺水事…

Redis---------实现短信登录业务

目录 基于Session的短信登录 ①首先看他的业务逻辑 ②进行代码逻辑处理 基于Redis的短信登录 ①首先看他的业务逻辑 ②进行代码逻辑处理 Controller: Service接口: Service实例: Mapper: 封装ThreadLocal线程的数据操作&#x…

Sublime Vim模式配置:q关闭当前标签页

在Sublime安装目录下的->Packages文件夹下新建User文件夹创建文件Vintage.sublime-commands 路径为Sublime安装目录->Packages->User->Vintage.sublime-commands文件内容如下[{"caption": ":w - Save","command": "save"}…

天地图路径规划功能实现

目录 1、天地图路径规划2、路径规划3、参数说明4、Demo 1、天地图路径规划 天地图Web服务API为用户提供HTTP/HTTPS接口,即开发者可以通过这些接口使用各类型的地理信息数据服务,可以基于此开发跨平台的地理信息应用。 Web服务API对所有用户开放。使用本…

【综述】多核处理器芯片

文章目录 前言 Infineon处理器 AURIX™系列 TC399XX-256F300S 典型应用 开发工具 参考资料 前言 见《【综述】DSP处理器芯片》 Infineon处理器 AURIX™系列,基于TriCore内核,用于汽车和工业领域。 XMC™系列,基于ARM Cortex-M内核&…

【LAMMPS学习】八、基础知识(5.3)Body particles体粒子

8. 基础知识 此部分描述了如何使用 LAMMPS 为用户和开发人员执行各种任务。术语表页面还列出了 MD 术语,以及相应 LAMMPS 手册页的链接。 LAMMPS 源代码分发的 examples 目录中包含的示例输入脚本以及示例脚本页面上突出显示的示例输入脚本还展示了如何设置和运行各…

python笔记:gensim进行LDA

理论部分:NLP 笔记:Latent Dirichlet Allocation (介绍篇)-CSDN博客 参考内容:DengYangyong/LDA_gensim: 用gensim训练LDA模型,进行新闻文本主题分析 (github.com) 1 导入库 import jieba,os,re from ge…

【C++】详解string类

目录 简介 框架 构造 全缺省构造函数 ​编辑 传对象构造函数 拷贝构造 析构函数 容量 size() capacity() empty() clear() reserve() ​编辑 resize() 遍历 检引用符号"[ ]"的重载 迭代器 begin() end() rbegin() rend(…

Spring Data JPA数据批量插入、批量更新真的用对了吗

Spring Data JPA系列 1、SpringBoot集成JPA及基本使用 2、Spring Data JPA Criteria查询、部分字段查询 3、Spring Data JPA数据批量插入、批量更新真的用对了吗 前言 在前两篇文章已经介绍过,在使用Spring Data JPA时,DAO层的Respository通过继承J…

链表面试题1.

1,反转一个单链表 采用头插法即可 class Solution {public ListNode reverseList(ListNode head) {if(head null){return head;}ListNode cur head.next;head.next null;while(cur ! null){ListNode curN cur.next;cur.next head;head cur ;cur curN;}return …

websocket 单点通信,广播通信

Websocket协议是对http的改进,可以实现client 与 server之间的双向通信; websocket连接一旦建立就始终保持,直到client或server 中断连接,弥补了http无法保持长连接的不足,方便了客户端应用与服务器之间实时通信。 参…

ElasticSearch自动补全

一、拼音分词器: 当用户在搜索框输入字符时,我们应该提示出与该字符有关的搜索项,如图: 这种根据用户输入的字母,提示完整词条的功能,就是自动补全了。 GET /_analyze {"text":"我爱螺蛳粉…

C++类和对象上篇

🐇 🔥博客主页: 云曦 📋系列专栏:[C] 💨路漫漫其修远兮 吾将而求索 💛 感谢大家👍点赞 😋关注📝评论 文章目录 📙前言📙1、面向过程…