我已經開始使用python使用PyTd從Teradata中提取查詢。來自SAS,我想知道是否有一種方法可以傳遞類似于SAS宏變量的參數/變量。我們公司對每個州都有不同的數據庫,我在其中運行相同的查詢,但每次都需要更新狀態。下面的例子是,我想用{macroVariable}代替每個狀態,循環遍歷并運行一個新查詢,然后我會修補所有查詢。我找到了一些使用for循環的例子,但無法完全讓它以我需要的方式工作。import teradata as tdimport pandas as pdfrom teradata import tdodbcudaExec = 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)
1 回答

隔江千里
TA貢獻1906條經驗 獲得超10個贊
我沒有使用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)
添加回答
舉報
0/150
提交
取消