Teradata Python宏变量

2024-10-02 14:22:27 发布

您现在位置:Python中文网/ 问答频道 /正文

我已经开始使用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)

Tags: fromimportexecutesessionastdpdsas
1条回答
网友
1楼 · 发布于 2024-10-02 14:22:27

我没有使用PYTD,但我使用sql炼金术,这种类型的编码适合我。让我举个例子给你看

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)

相关问题 更多 >