python 文件 解析ddl_Python ddlparse包_程序模块 - PyPI - Python中文网

fromddlparse.ddlparseimportDdlParsesample_ddl="""CREATE TABLE My_Schema.Sample_Table (Id integer PRIMARY KEY COMMENT 'User ID',Name varchar(100) NOT NULL COMMENT 'User name',Total bigint NOT NULL,Avg decimal(5,1) NOT NULL,Created_At date, -- Oracle 'DATE' -> BigQuery 'DATETIME'UNIQUE (NAME));"""# parse pattern (1-1)table=DdlParse().parse(sample_ddl)# parse pattern (1-2) : Specify source databasetable=DdlParse().parse(ddl=sample_ddl,source_database=DdlParse.DATABASE.oracle)# parse pattern (2-1)parser=DdlParse(sample_ddl)table=parser.parse()print("* BigQuery Fields * : normal")print(table.to_bigquery_fields())# parse pattern (2-2) : Specify source databaseparser=DdlParse(ddl=sample_ddl,source_database=DdlParse.DATABASE.oracle)table=parser.parse()# parse pattern (3-1)parser=DdlParse()parser.ddl=sample_ddltable=parser.parse()# parse pattern (3-2) : Specify source databaseparser=DdlParse()parser.source_database=DdlParse.DATABASE.oracleparser.ddl=sample_ddltable=parser.parse()print("* BigQuery Fields * : Oracle")print(table.to_bigquery_fields())print("* TABLE *")print("schema ={}: name ={}: is_temp ={}".format(table.schema,table.name,table.is_temp))print("* BigQuery Fields *")print(table.to_bigquery_fields())print("* BigQuery Fields - column name to lower case / upper case *")print(table.to_bigquery_fields(DdlParse.NAME_CASE.lower))print(table.to_bigquery_fields(DdlParse.NAME_CASE.upper))print("* COLUMN *")forcolintable.columns.values():col_info=[]col_info.append("name ={}".format(col.name))col_info.append("data_type ={}".format(col.data_type))col_info.append("length ={}".format(col.length))col_info.append("precision(=length) ={}".format(col.precision))col_info.append("scale ={}".format(col.scale))col_info.append("constraint ={}".format(col.constraint))col_info.append("not_null ={}".format(col.not_null))col_info.append("PK ={}".format(col.primary_key))col_info.append("unique ={}".format(col.unique))col_info.append("bq_legacy_data_type ={}".format(col.bigquery_legacy_data_type))col_info.append("bq_standard_data_type ={}".format(col.bigquery_standard_data_type))col_info.append("comment = '{}'".format(col.comment))col_info.append("description(=comment) = '{}'".format(col.description))col_info.append("BQ{}".format(col.to_bigquery_field()))print(" : ".join(col_info))print("* DDL (CREATE TABLE) statements *")print(table.to_bigquery_ddl())print("* DDL (CREATE TABLE) statements - dataset name, table name and column name to lower case / upper case *")print(table.to_bigquery_ddl(DdlParse.NAME_CASE.lower))print(table.to_bigquery_ddl(DdlParse.NAME_CASE.upper))print("* Get Column object (case insensitive) *")print(table.columns["total"])

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值