(本文档仅供参考)
问题现象:
在etl的数据查询节点写with as的临时表语法的时候etl执行报错:关键字 'WITH' 附近有语法错误
问题原因:
数据查询节点在etl中执行的时候在原本临时表的sql语句外面再加上一层,如:select * from ( 所写sql ) where 1= 0。最终就会导致整个sql语句执行报错。
出现这个问题主要是部分的数据库临时表需要给一个as命名表名导致的,所以目前仅支持部分数据库使用with as语句,如postgreSql、oracle、selectdb、starrocks、doris、mysql8。不支持的数据库有clickhouse、sqlserver、mysql5。值得注意的是其中有些数据库虽然支持,但不支持as后面接中文表名。
解决方案:
1、更换支持临时表的数据库
2、讲临时表落地为视图,然后直接调用视图即可