我正在从事 Oracle 到 Teradata 的迁移项目。
这些表已使用数据阶段作业迁移。
如何将 Oracle 视图迁移到 Teradata?
由于两个数据库的 SQL 语句不同,直接脚本复制不起作用
请帮忙?
DECODE()
Oracle 函数作为 Oracle UDF 库的一部分在 Teradata Developer Exchange下载部分提供。否则,您在示例中使用 DECODE 函数的方式与 ANSICOALESCE()
函数的行为方式相同:
COALESCE(t.satisfaction, 'Not Evaluated')
需要注意的是,COALESCE()
函数的数据类型必须是隐式兼容的,否则会报错。因此,t.satisfaction 至少需要CHAR(13)
或VARCHAR(13)
为了COALESCE()
评估。如果不是,您可以显式转换操作数。
COALESCE(CAST(t.satisfaction AS VARCHAR(13)), 'Not Evaluated')
如果您的使用DECODE()
包含比示例中更多的评估,我建议实施 UDF 或用更标准的评估CASE
语句替换它。话虽如此,在 Teradata 14(或 14.1)中,您会发现 Teradata 中缺少的许多 Oracle 功能将作为标准功能提供,以帮助简化从 Oracle 到 Teradata 的迁移路径。