2 qqqwwweeerrrttt123 qqqwwweeerrrttt123 于 2016.02.20 14:06 提问

在Linux下Python脚本进行数据抽取,请教各位大神怎么才能批量抽取。

#!/usr/bin/python

-*- coding:utf-8 -*-

import cx_Oracle
import datetime
import time
import os
from sys import *
from string import *
import tty, termios
from dbipaddr import *

if len(argv) !=2:
print "Usage: python up_bill_discount.py 统计日期[YYYYMMDD]\n"
exit()

path=os.environ["HOME"] + "/trunk/etl/ecds/output/"

starttime = datetime.datetime.now()
data_dt = '%s-%s-%s' % ( argv[1][0:4], argv[1][4:6], argv[1][6:8] )
oconn = cx_Oracle.connect("fina","fina", "192.168.10.85:1521/cbs")
acur = oconn.cursor()
acur.execute("select * from JYLS")######现在只能抽取一个表的!!!

filename = path+argv[1]+"/BILL_DISCOUNT" + replace(data_dt, '-', '') + ".txt"
file = open(filename, "w+")

bCount = 0
for a in acur:

    record = (a)

    for i in range( len(record) ):
            file.write( "%s" % record[i] )
            if i < len(record) - 1:
                    file.write(":")
            else:
                    file.write("\n")

    bCount = bCount + 1
    if bCount % 1000 == 0:
            print "贴现登记抽取已完成:%s" % bCount

file.close()
fileok = path+argv[1]+"/BILL_DISCOUNT" + replace(data_dt, '-', '') + ".ok"
fok = open( fileok, 'w+' )
fok.close()

endtime = datetime.datetime.now()

print "贴现登记抽取已完成,总共用时:%s" % (endtime-starttime)
我是该怎么修改,才能实现批量抽取几十个表的,求手动修改代码。。。

1个回答

oyljerry
oyljerry   Ds   Rxr 2016.02.20 14:45

你循环执行sql语句 查询多个表格的数据

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐
基于spark的大数据提取校验框架
针对数据提取中数据校验和错误定位、缺失值填充等通用问题,我开发了基于spark和python语言的数据提取校验框架wind-fe。 wind_fe数据提取框架将特征提取(数据提取)过程中自动化校验、缺失填充、调试、join产出、批量回溯、自动调度运行、自动添加分区表等通用环节抽象复用。基于这个框架,开发者可以用较少的开发成本获取到自动化校验过的特征数据,同时节约其他数据提取通用环节开发成本。该框架在自动化校验环节也保留扩展点,可以在一次数据校验任务中完成扩展校验,校验所需要的额外的资源消耗较少。该框架在我们
(1)Kettle数据抽取---全量抽取
(1)Kettle数据抽取---全量抽取
转:python_文本文件里面随机抽取若干行,写入新的文本文件里面
转: #encoding=utf-8 import random from sets import Set     def copyfile(srcfile, dstfile, linenum):      """          get linenum different lines out from srcfile at random          and wri
python 抽取数据
# -*- coding: utf-8 -*- import cx_Oracle from pprint import pprint import csv import time import re import binascii conn = cx_Oracle.connect('system/oracle@192.168.137.2/serv') cursor = conn.cursor()
BI项目中的ETL设计详解(数据抽取、清洗与转换 )
ETL是将业务系统的数据经过抽取、清洗转换之后加载到数据仓库的过程,目的是将企业中的分散、零乱、标准不统一的数据整合到一起,为企业的决策提供分析的依据。 ETL是BI项目最重要的一个环节,通常情况下ETL会花掉整个项目的1/3的时间,ETL设计的好坏直接关接到BI项目的成败。ETL也是一个长期的过程,只有不断的发现问题并解决问题,才能使ETL运行效率更高,为项目后期开发提供准确的数据。 ETL的
数据抽取工具Kettle使用
在我们开发的过程中,经常碰到多个系统之间需要相互抽取数据的问题,以往我们可以通过写Webservices接口,或者FTP共享来完成,但是这样会存在工作量大,不便于维护,性能不高的问题。今天介绍一款常用的数据抽取工具—-Kettle。 Kettle是一款国外开源的ETL工具,纯Java编写,可以在Window、Linux、Unix上运行,数据抽取高效稳定。下面我们使用一个Demo程序介绍下其常用组件
SSIS学习(四) - SSIS+CDC 增量抽取数据
前三节主要是入门和单独使用,本章重点SSIS结合CDC做数据增量抽取(insert,update,delete) 一 在开启表的CDC基础上,建立cdc记录表用于每次增量的记录
如何用informatic实现表的增量抽取
本文所提到的数据加载策略为OLTP系统作为源系统,并进行 ETL数据加载到OLAP系统中所采用的一般数据加载策略。 根据该方式的特定性,此时ETL数据加载一般存在以下四种方 案: 1、 时戳方式 需要在OLTP系统中业务表中统一添加时间字段作为时戳(如表中已有相应的时间字段,可以不必添加),每当OLTP系统中更新修改业务数据时,同时修改时戳字段值。当作ETL加载时,通过系统时间
系统之间数据抽取的解决方案
1.实现数据集中的技术手段分析比较 http://blog.csdn.net/hongbinchen/article/details/6580593
BI项目中的ETL设计详解(数据抽取、清洗与转换)
ETL是BI项目最重要的一个环节,通常情况下ETL会花掉整个项目的1/3的时间,ETL设计的好坏直接关接到BI项目的成败。ETL也是一个长期的过程,只有不断的发现问题并解决问题,才能使ETL运行效率更高,为项目后期开发提供准确的数据。 ETL的设计分三部分:数据抽取、数据的清洗转换、数据的加载。在设计ETL的时候也是从这三部分出发。数据的抽取是从各个不同的数据源抽取到ODS中(这个过程也可以做一