我在Teradata ABC_XXX中有一张表格,其中XXX将按月更改。例如:ABC_1902,ABC_1812,ABC_1904等......
我需要在我的应用程序中访问此表而不必每月修改代码。
这是在Teradata或任何替代解决方案中的任何方式。
请帮忙
您可以尝试在子查询中使用DBC.TABLES,如下所示:
with tbl as (select 'select * from ' || databasename||'.'||tablename as tb from
dbc.tables where tablename like 'ABC_%')
select * from tbl;
如果您可以在应用程序中执行最终查询,则无需编辑查询即可查询所需的表。
上述解决方案期望每当创建新月份表时,前一个月的表就会被删除。
但是,如果没有删除上一个表,那么您可以尝试以下方法:
select 'select * from db.ABC_' ||to_char(current_date,'YYMM')
输出将是
select * from db.ABC_1902
在您的应用程序中执行输出,您将能够查询动态表。