python配置SSH通道连接远程oracle数据库,并读取数据表为dataframe格式

本文介绍如何使用Python的cx_Oracle库,配合sshtunnel模块,通过SSH隧道安全连接到远程Oracle数据库,执行SQL查询并将结果转换为pandas DataFrame格式,便于数据处理和分析。
摘要由CSDN通过智能技术生成

python连接oracle数据库,并读取数据表为dataframe格式

具体代码如下,代码中的中文部分需要自行修改成自己的相关信息。

#!/usr/bin/env python
#coding:utf-8

#导入数据模块
import cx_Oracle
import xlsxwriter
import time
import pandas as pd
from sshtunnel import SSHTunnelForwarder

#远程服务器及其上的数据库相关信息
userInfo = '数据库用户名/数据库密码'
dbStr = '@数据库所在的IP地址:1521/服务名'  #oracle数据库端口号是1521
connstr = userInfo + dbStr
 
#映射到本地相关信息 
LOCAL_PORT = 38399  #自行设置的本地对应端口号
DSN = "数据库用户名/数据库密码@localhost:%d/服务名" %LOCAL_PORT
 
#数据库语句示例
sql ='''
     select * from wfdata.lt_patient_info where rownum<100
     '''
 
# 1、不通过ssh来连接Oracle数据库直接用以下语句即可,此处我们需要配置SSH通道,所以不直接连接
# con = cx_Oracle.connect(connstr)
# cursor = con.cursor()
# query1 = cursor.execute(sql)  


#2、通过ssh中间跳板机来连接Oracle数据库
with SSHTunnelForwarder(
         ('主机名', 22),    #使用的SSH通道相对应的主机IP地址,即远程中间跳板机器的配置,端口默认22
         ssh_username="用户名",
         ssh_password="密码",
         remote_bind_address=("数据库所在的IP地址", 1521), #远程数据库所在机器配置
         local_bind_address=("127.0.0.1", LOCAL_PORT)    #本地转发接口配置,与DSN的配置相关
         ) as server:
    print("sshConnectSuccess")  #可以打印一下看是否连接成功
    
    #连接数据库,读取数据表
    con = cx_Oracle.connect(DSN)
    cursor = con.cursor()
    query1 = cursor.execute(sql)
    
    #将读取的数据保存为dataframe数据格式
    data = pd.DataFrame(query1.fetchall())
    print(data)  #可以打印看一下数据的情况
    
    #操作完成后记得关闭服务
    cursor.close()
    con.close()

参考:https://blog.csdn.net/weixin_34466671/article/details/113543254

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

白小斗

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值