前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >基于python连接oracle导并出数据文件

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

作者头像
砸漏
发布2020-11-02 17:03:32
7090
发布2020-11-02 17:03:32
举报
文章被收录于专栏:恩蓝脚本恩蓝脚本

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

主脚本:

代码语言:javascript
复制
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

以上就是本文的全部内容,希望对大家的学习有所帮助。

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2020-09-11 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档