使用 python 从 Teradata 下载 DML 和 DDL sql

Download DML and DDL sql from Teradata using python

使用 python 从 teradata 数据库下载 DDL、DML 和存储过程应该遵循什么方法。

我已经创建了示例代码,但是下载这些 sql 文件用于数据迁移过程的方法是什么。

udaExec = teradata.UdaExec(appName="HelloWorld", version="1.0",logConsole=False)
session = udaExec.connect(method="odbc", system="xxx",username="xxx", password="xxx");
for row in session.execute("show tables {} > {}".format(tables, export_tables)):
     print(row)

与使用 mssql-scripter 下载 .sql 文件的 MSSQL 不同,teradata 是否提供任何此类下载选项。另外,它是否支持下载序列、视图和程序?

对于架构迁移过程,从 teradata 下载这些文件作为源的最佳方法应该是什么?

很高兴与大家分享我得到了这种方法的解决方案。为了获得 sql 格式的文件,请使用给定的代码提取 DDL 和 DML 代码。

给定的代码用于示例数据库 dbc。

with teradatasql.connect(host='enter_host_ip', user='---', password='---') as connect:
#get the table name and database name in csv file using select statement
df = pd.read_csv("result.csv", index_col=None)
for tables_name in df['TableName']:
    query = "SHOW TABLE DBC."+ tables_name
    try:
        df = pd.read_sql(query, connect)
        df1 = df['Request Text'][0]
        writePath = "C:\Users\SQL\"+tables_name+".sql"
        with open(writePath, 'a') as f:
            dfAsString = df1
            f.write(dfAsString)
    except Exception as e1:
        print(tables_name)            
        pass

注意:在 192 个表中,我能够为 189 个表获取 DDL/DML 脚本。对于表执行手动干预。