美文网首页
Python读取EXCEL表结构生成DDL

Python读取EXCEL表结构生成DDL

作者: 扎西的德勒 | 来源:发表于2021-03-18 14:27 被阅读0次

    一、说明

    近期工作中需要对Excel维护的数据库表表结构进行Oracle的DDL整理,故编写如下脚本。
    该脚本识别固定Excel文件,读取每个sheet页的数据库表结构信息后拼接成可执行的DDL语句。
    注意:控制台输出的DDL语句,需要对数据类型和最后一个字段的逗号做统一替换处理。

    二、逻辑

    1、EXCEL格式

    image.png

    2、Python脚本

    import xlrd
    
    data_file = xlrd.open_workbook('tablesDDL.xlsx')
    
    # 查看工作表
    data_file.sheet_names()
    # print("sheets:" + str(data_file.sheet_names()))
    
    #遍历所有工作表,获取对应的下标位置
    for num in range(len(data_file.sheet_names())):
        #按照下标读取对应工作表
        sheet = data_file.sheet_by_index(num)
        # 拼接建表语句
        print("CREATE TABLE "+sheet.cell_value(1,0)+"."+sheet.cell_value(1,1)+"(")
        count = 0
        for i in range(sheet.nrows):
            if count >= 1:
                # row = sheet.row_values(i)
                column_name = sheet.cell_value(i, 4)
                data_type = sheet.cell_value(i,6)
                data_type_length = sheet.cell_value(i,7)
                print("\t"+column_name+" "+data_type+"("+str(data_type_length)[0:-2]+"),")
            count += 1
    
        print(");")
        count2 = 0
        #拼接字段注释和表注释
        for j in range(sheet.nrows):
            if count2 >= 1:
                # row = sheet.row_values(i)
                user_name = sheet.cell_value(1, 0)
                table_name = sheet.cell_value(1, 1)
                column_name = sheet.cell_value(j, 4)
                column_comment = sheet.cell_value(j, 5)
                print("COMMENT ON COLUMN "+user_name+"."+table_name+"."+column_name+" IS "+"'"+column_comment+"';")
            count2 += 1
        table_comment = sheet.cell_value(1, 2)
        print("COMMENT ON TABLE "+user_name+"."+table_name+" IS "+"'"+table_comment+"';")
        num += 1
    

    即可在控制台输出对应的DDL语句。

    相关文章

      网友评论

          本文标题:Python读取EXCEL表结构生成DDL

          本文链接:https://www.haomeiwen.com/subject/sznucltx.html