基于python连接oracle导并出数据文件


Posted in Python onApril 28, 2020

python连接oracle,感觉table_list文件内的表名,来卸载数据文件

主脚本:

import os
import logging
import sys
import configparser
import subprocess
import cx_Oracle

#判断输入参数个数
class param():
  def check_para(self):
    if len(sys.argv) != 1:
       print("请输入正确的参数:yyyymmdd")
       exit(1)
    else:
      print("继续执行")

#根据配置文件获取登录信息
class get_dbini():
  def get_db(self):
    config=configparser.ConfigParser()
    filepath="db.ini"
    if os.path.exists(filepath):
      config.read_file(open(filepath))
      dbinfo=[config.get("db_oracle","username"),\
          config.get("db_oracle","password"),\
          config.get("db_oracle","ip"),\
          config.get("db_oracle","dbsid")]
    else:
      loginfo.info("没有那个配置文件")
      sys.exit(4)
    #声明使用全局变量
    global username,password,ip,dbsid
    username=dbinfo[0]
    password=dbinfo[1]
    ip=dbinfo[2]
    dbsid=dbinfo[3]
    loginfo.info(username+password+ip+dbsid)
          
#导出表数据
class exp_date():
  def exp_table(self):
   with open('table_list','r') as f:
    list = f.readlines()
   for i in list:
    tablename = i.rstrip('\n')
    exportquery='sqluldr2 user='+username+'/'+password+'@'+ip+':1521/'+dbsid+' query="select * from '+tablename+';" head=no file='+tablename+'.dat field=0x03 record=0x030x0a safe=yes'
    loginfo.info("开始导出数据: exportquery= "+exportquery)
    flag= subprocess.check_call(exportquery,shell=True)
    loginfo.info(flag)
    
#打印日志
class log_set():
  def logger_set(self):
   logger=logging.getLogger('mylogger')
   logger.setLevel(logging.DEBUG)
   
   fh=logging.FileHandler('a.log','w')
   fh.setLevel(logging.INFO)
   
   ch=logging.StreamHandler()
   ch.setLevel(logging.ERROR)

   formatter = logging.Formatter('%(asctime)s -%(name)s -%(levelname)s - %(message)s')
   
   fh.setFormatter(formatter)
   ch.setFormatter(formatter)
   
   logger.addHandler(fh)
   logger.addHandler(ch)
   return logger
if __name__=='__main__':
  loginfo=log_set().logger_set()
  param().check_para()
  get_dbini().get_db()
  exp_date().exp_table()

DB配置文件内容:

db.ini

[db_oracle]
username=c##scott
password=tiger
ip=192.168.1.250
dbsid=orcl

表名字的配置文件:

table_list

BONUS
DEPT
EMP
LEAD_TABLE
SALGRADE
T1
TB_USER
TEST
XGJ
XGJ_2

运行结果:

[oracle@master2 tmp]$ python3 c.py
继续执行
0 rows exported at 2019-01-22 17:51:51, size 0 MB.
output file BONUS.dat closed at 0 rows, size 0 MB.
0 rows exported at 2019-01-22 17:51:52, size 0 MB.
4 rows exported at 2019-01-22 17:51:52, size 0 MB.
output file DEPT.dat closed at 4 rows, size 0 MB.
0 rows exported at 2019-01-22 17:51:52, size 0 MB.
12 rows exported at 2019-01-22 17:51:52, size 0 MB.
output file EMP.dat closed at 12 rows, size 0 MB.
0 rows exported at 2019-01-22 17:51:52, size 0 MB.
10 rows exported at 2019-01-22 17:51:52, size 0 MB.
output file LEAD_TABLE.dat closed at 10 rows, size 0 MB.
0 rows exported at 2019-01-22 17:51:52, size 0 MB.
5 rows exported at 2019-01-22 17:51:52, size 0 MB.
output file SALGRADE.dat closed at 5 rows, size 0 MB.
0 rows exported at 2019-01-22 17:51:52, size 0 MB.
5 rows exported at 2019-01-22 17:51:52, size 0 MB.
output file T1.dat closed at 5 rows, size 0 MB.
0 rows exported at 2019-01-22 17:51:52, size 0 MB.
10 rows exported at 2019-01-22 17:51:52, size 0 MB.
output file TB_USER.dat closed at 10 rows, size 0 MB.
0 rows exported at 2019-01-22 17:51:52, size 0 MB.
8 rows exported at 2019-01-22 17:51:52, size 0 MB.
output file TEST.dat closed at 8 rows, size 0 MB.
0 rows exported at 2019-01-22 17:51:52, size 0 MB.
9 rows exported at 2019-01-22 17:51:52, size 0 MB.
output file XGJ.dat closed at 9 rows, size 0 MB.
0 rows exported at 2019-01-22 17:51:52, size 0 MB.
8 rows exported at 2019-01-22 17:51:52, size 0 MB.
output file XGJ_2.dat closed at 8 rows, size 0 MB.

查看日志:

[oracle@master2 tmp]$ more a.log
2019-01-22 17:51:51,858 -mylogger -INFO - c##scotttiger192.168.1.250orcl
2019-01-22 17:51:51,858 -mylogger -INFO - 开始导出数据: exportquery= sqluldr2 user=c##scott/tiger@192.168.1.250:1521/orcl query="select * from BONUS;" head=no file=BON
US.dat field=0x03 record=0x030x0a safe=yes
2019-01-22 17:51:51,949 -mylogger -INFO - 0
2019-01-22 17:51:51,949 -mylogger -INFO - 开始导出数据: exportquery= sqluldr2 user=c##scott/tiger@192.168.1.250:1521/orcl query="select * from DEPT;" head=no file=DEPT
.dat field=0x03 record=0x030x0a safe=yes
2019-01-22 17:51:52,038 -mylogger -INFO - 0
2019-01-22 17:51:52,038 -mylogger -INFO - 开始导出数据: exportquery= sqluldr2 user=c##scott/tiger@192.168.1.250:1521/orcl query="select * from EMP;" head=no file=EMP.d
at field=0x03 record=0x030x0a safe=yes
2019-01-22 17:51:52,129 -mylogger -INFO - 0
2019-01-22 17:51:52,129 -mylogger -INFO - 开始导出数据: exportquery= sqluldr2 user=c##scott/tiger@192.168.1.250:1521/orcl query="select * from LEAD_TABLE;" head=no fil
e=LEAD_TABLE.dat field=0x03 record=0x030x0a safe=yes
2019-01-22 17:51:52,299 -mylogger -INFO - 0
2019-01-22 17:51:52,300 -mylogger -INFO - 开始导出数据: exportquery= sqluldr2 user=c##scott/tiger@192.168.1.250:1521/orcl query="select * from SALGRADE;" head=no file=
SALGRADE.dat field=0x03 record=0x030x0a safe=yes
2019-01-22 17:51:52,401 -mylogger -INFO - 0
2019-01-22 17:51:52,402 -mylogger -INFO - 开始导出数据: exportquery= sqluldr2 user=c##scott/tiger@192.168.1.250:1521/orcl query="select * from T1;" head=no file=T1.dat
field=0x03 record=0x030x0a safe=yes
2019-01-22 17:51:52,490 -mylogger -INFO - 0
2019-01-22 17:51:52,490 -mylogger -INFO - 开始导出数据: exportquery= sqluldr2 user=c##scott/tiger@192.168.1.250:1521/orcl query="select * from TB_USER;" head=no file=T
B_USER.dat field=0x03 record=0x030x0a safe=yes
2019-01-22 17:51:52,578 -mylogger -INFO - 0
2019-01-22 17:51:52,578 -mylogger -INFO - 开始导出数据: exportquery= sqluldr2 user=c##scott/tiger@192.168.1.250:1521/orcl query="select * from TEST;" head=no file=TEST
.dat field=0x03 record=0x030x0a safe=yes
2019-01-22 17:51:52,665 -mylogger -INFO - 0
2019-01-22 17:51:52,665 -mylogger -INFO - 开始导出数据: exportquery= sqluldr2 user=c##scott/tiger@192.168.1.250:1521/orcl query="select * from XGJ;" head=no file=XGJ.d
at field=0x03 record=0x030x0a safe=yes
2019-01-22 17:51:52,771 -mylogger -INFO - 0
2019-01-22 17:51:52,771 -mylogger -INFO - 开始导出数据: exportquery= sqluldr2 user=c##scott/tiger@192.168.1.250:1521/orcl query="select * from XGJ_2;" head=no file=XGJ
_2.dat field=0x03 record=0x030x0a safe=yes
2019-01-22 17:51:52,856 -mylogger -INFO - 0

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python实现的一个找零钱的小程序代码分享
Aug 25 Python
Python运算符重载用法实例
May 28 Python
python字符串str和字节数组相互转化方法
Mar 18 Python
python快排算法详解
Mar 04 Python
python实现数据分析与建模
Jul 11 Python
python实现最大优先队列
Aug 29 Python
django 读取图片到页面实例
Mar 27 Python
python实现图像全景拼接
Mar 27 Python
浅谈Keras的Sequential与PyTorch的Sequential的区别
Jun 17 Python
python实现批处理文件
Jul 28 Python
Selenium获取登录Cookies并添加Cookies自动登录的方法
Dec 04 Python
使用BeautifulSoup4解析XML的方法小结
Dec 07 Python
numpy库ndarray多维数组的维度变换方法(reshape、resize、swapaxes、flatten)
Apr 28 #Python
简单了解python shutil模块原理及使用方法
Apr 28 #Python
python脚本监控logstash进程并邮件告警实例
Apr 28 #Python
用Python在Excel里画出蒙娜丽莎的方法示例
Apr 28 #Python
全网首秀之Pycharm十大实用技巧(推荐)
Apr 27 #Python
python实时监控logstash日志代码
Apr 27 #Python
python实现秒杀商品的微信自动提醒功能(代码详解)
Apr 27 #Python
You might like
php自动注册登录验证机制实现代码
2011/12/20 PHP
PHP防止post重复提交数据的简单例子
2014/06/07 PHP
JavaScript与C# Windows应用程序交互方法
2007/06/29 Javascript
js tab 选项卡
2009/04/26 Javascript
javascript Array.prototype.slice使用说明
2010/10/11 Javascript
使用GruntJS构建Web程序之安装篇
2014/06/04 Javascript
让IE8浏览器支持function.bind()方法
2014/10/16 Javascript
js实现单击图片放大图片的方法
2015/02/17 Javascript
jQuery实现将页面上HTML标签换成另外标签的方法
2015/06/09 Javascript
JS获取文件大小方法小结
2015/12/08 Javascript
AngularJS初始化静态模板详解
2016/01/14 Javascript
JS实现非首屏图片延迟加载的示例
2018/01/06 Javascript
Vue表单类的父子组件数据传递示例
2018/05/03 Javascript
解决百度Echarts图表坐标轴越界的方法
2018/10/17 Javascript
初探Vue3.0 中的一大亮点Proxy的使用
2018/12/06 Javascript
vue-cli3 配置开发与测试环境详解
2019/05/17 Javascript
node.js通过Sequelize 连接MySQL的方法
2020/12/28 Javascript
Python IDLE入门简介
2017/12/08 Python
python绘制双柱形图代码实例
2017/12/14 Python
Python smtplib实现发送邮件功能
2018/05/22 Python
解决python中画图时x,y轴名称出现中文乱码的问题
2019/01/29 Python
python实现AES加密和解密
2019/03/27 Python
keras实现多种分类网络的方式
2020/06/11 Python
Strawberrynet草莓网新加坡站:护肤、彩妆、香水及美发产品
2018/08/31 全球购物
Rossignol金鸡美国官网:始于1907年法国百年雪具品牌
2019/03/06 全球购物
英国时尚配饰、珠宝和服装网站:KJ Beckett
2020/01/23 全球购物
计算机本科生自荐信
2013/10/15 职场文书
行政主管岗位职责
2013/11/18 职场文书
银行演讲稿范文
2014/01/03 职场文书
企业元宵节主持词
2014/03/25 职场文书
《数星星的孩子》教学反思
2014/04/11 职场文书
信息工作经验交流材料
2014/05/28 职场文书
2016年学校党支部创先争优活动总结
2016/04/05 职场文书
python opencv检测直线 cv2.HoughLinesP的实现
2021/06/18 Python
java设计模式--七大原则详解
2021/07/21 Java/Android
关于Spring配置文件加载方式变化引发的异常详解
2022/01/18 Java/Android