【问题标题】:Teradata Python Macro VariableTeradata Python 宏变量
【发布时间】:2020-05-31 23:41:18
【问题描述】:

我已经开始使用 python 通过 PyTd 从 Teradata 中提取查询。来自 SAS,我想知道是否有一种方法可以传递类似于 SAS 宏变量的参数/变量。我们公司对每个州都有不同的数据库,我在其中运行相同的查询,但每次都需要更新状态。下面的示例我想用 {macroVariable} 替换每个状态,循环并运行一个新查询,然后我会修改所有查询。我找到了一些使用 for 循环的示例,但无法完全按照我需要的方式工作。

import teradata as td
import pandas as pd
from teradata import tdodbc

udaExec = td.UdaExec(appConfigFile="udaexec.ini")

with udaExec.connect("${dataSourceName}") as session:

    query1 = """{macroVariable}_db_1;"""

    query2 = """select * from table"""

 session.execute(query1)
 session.execute(query2)
 df = pd.read_sql(query2, session)

【问题讨论】:

    标签: python teradata


    【解决方案1】:

    我没有使用 PYTD,但我使用 sql alchemy,这种类型的编码适合我。让我用一个例子来告诉你。

    import sqlalchemy as sa
    import pandas as pd
    
    td_engine = '%s://%s:%s@%s/%s'%(td_driver, username, password, td_host,dbname)
    td_conn = sa.create_engine(td_engine)
    
    x = '202012' # your variable (similar to SAS macro variable) that you define outside of teradata envrionment
    
    td_sql = ''' select top 10* from customer_{}'''.format(x)
    df = pd.read_sql(td_sql, td_conn)
    

    【讨论】:

      猜你喜欢
      • 2017-05-20
      • 2011-02-10
      • 2015-10-21
      • 1970-01-01
      • 1970-01-01
      • 2020-02-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多