Synapse Pipeline Lookup活动执行SQL创建视图报SELECT语法错误
报错产生原因
- 核心原因是你在同一段SQL中拼接了两段独立执行的语句,不符合Synapse Serverless SQL池的单次SQL执行语法要求:
CREATE OR ALTER VIEW作为DDL语句,执行完成后就会结束当前解析逻辑,你在后面用分号追加的SELECT 1语句会被语法解析器判定为非法的后续内容,因此抛出SELECT关键字附近语法错误的提示。 - 你追加
SELECT 1通常是为了避免Lookup活动因为SQL无返回结果抛出空值报错,这个需求不能通过和DDL语句拼接的方式实现。
对应解决方案
- 先删除现有SQL末尾的
SELECT 1语句,仅保留创建视图的逻辑即可:
CREATE OR ALTER VIEW view_name AS SELECT * FROM OPENROWSET(BULK 'https://datalake/container/Delta folder/', FORMAT='DELTA') AS result;
- 如果需要验证视图创建成功,可在当前Lookup活动后新增一个独立的Lookup活动,执行视图存在校验或者
SELECT 1语句获取返回结果即可。
你当前选择用Lookup活动执行Serverless SQL的方案是符合需求的,通过该方式创建的视图可以直接被SSMS、Power BI连接Serverless SQL池端点后正常访问,也能解决Spark池创建的表/视图无法被Serverless SQL查询的问题。
内容的提问来源于stack exchange,提问作者Shuo Xu
相关产品推荐
相关产品推荐

