python 生成分区SQL

本文介绍如何使用Python编写脚本,根据特定规则生成数据库分区的SQL语句,适用于大规模数据管理和优化。通过实例演示,展示了如何实现按日期、范围等条件进行分区,提升查询效率。
摘要由CSDN通过智能技术生成

# !/usr/bin/env python
# -*- coding: utf-8 -*-
import MySQLdb
from datetime import datetime
import cx_Oracle
import os
import sys
import re
import time

reload(sys)
sys.setdefaultencoding('utf-8')
os.environ['NLS_LANG'] = 'SIMPLIFIED CHINESE_CHINA.UTF8'
import datetime  # 导入日期时间模块

# if len(sys.argv) != 4:
#     print sys.argv[0] + ' ' + 'table_name' + ' ' + 'start_date' + ' ' + 'stop_date'
# else:
#     table_name = sys.argv[1]
#     start_date = sys.argv[2]
#     stop_date = sys.argv[3]
table_name = 'T_PM_ACCT_DTL_AF'
start_date = '20180101'
stop_date = '20181231'
print table_name
print start_date
print stop_date
conn = cx_Oracle.connect('tlcbuser/tlcbuser@1.1.1.1/tlyy')
tips = '+1'


def get_date(v_date):
    cur = conn.cursor()
    msql = "select to_char((to_date(%s,'YYYYMMDD')%s),'YYYY-MM-DD') from dual where rownum=1" % (v_date, tips)
    # print msql
    cur.execute(msql)
    row = cur.fetchone()
    # print row
    return row[0]


print '-----------------'

sdate = start_date
stop_date = get_date(stop_date)
stop_date = stop_date.replace('-', '')

while True:
    xdate = get_date(sdate)
    ydate = xdate.replace('-', '')
    print xdate
    print ydate
    ndate = xdate
    psql = "alter table %s add partition %s_%s values less than (to_date('%s','yyyy-mm-dd'));" % (
    table_name, table_name, sdate, ndate)
    sdate = ydate
    if ydate == stop_date:
        break;
    print psql

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

scan724

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

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

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

打赏作者

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

抵扣说明:

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

余额充值