VS Code中dbt Model对接BigQuery报错:非法输入字符\303
在VS Code + dbt + BigQuery中遇到非法字符语法错误:
Syntax error: Illegal input character "\303" at [24:15] 我使用VS Code结合dbt在BigQuery上构建模型时,触发了如下语法错误:Syntax error: Illegal input character "\303" at [24:15]
以下是我的dbt模型脚本:
{{ config( tags=["PII", "LAGERL23B"], materialized="table" ) }} WITH -- 加载源数据并在单个CTE中完成所有转换 Extraktion_Details AS ( SELECT *, CONCAT( SUBSTRING(CAST(Artikelfarbennummer AS STRING), 1, 2), '-', SUBSTRING(CAST(Artikelfarbennummer AS STRING), 3, 4), '/', SUBSTRING(CAST(Artikelfarbennummer AS STRING), 7, 2) ) AS Artikelnummer, SUBSTRING(CAST(Artikelfarbennummer AS STRING), 7, 2) AS Farbnummer, SUBSTRING(CAST(Artikelfarbennummer AS STRING), 1, 6) AS Artikelnummer_ohne_Farbe, SUBSTRING(CAST(FORM8 AS STRING), 1, 2) AS PROD2 FROM {{ ref("stg_LAGERL23B") }} AS LAGERL23B ), Neuer_Schlüssel AS ( SELECT *, CONCAT(Kundennummer, '_', PROD2) AS Key_Kunde FROM Extraktion_Details ) -- 最终输出 SELECT COUNT(*) FROM Neuer_Schlüssel
我已经尝试过这些排查步骤但问题未解决:
- 检查代码中是否存在不可打印或隐藏字符
- 确保文件以UTF-8编码保存
- 将代码复制到纯文本编辑器中去除特殊格式
解决方法
错误中的\303是UTF-8编码下特殊字符的八进制表示(对应Unicode字符Ã),结合错误位置[24:15],可以定位到核心问题并通过以下方式解决:
替换标识符中的变音字符
错误行对应CTE名称Neuer_Schlüssel中的ü,BigQuery对标识符(CTE名、字段名、表名)的非ASCII字符支持有限,将带变音的字符替换为纯ASCII写法:- 把
Neuer_Schlüssel改为Neuer_Schluessel - 同理检查其他带变音的标识符(如
Artikelnummer_ohne_Farbe中的ö),统一替换为无变音形式
- 把
手动重写关键行
复制粘贴可能残留难以检测的隐藏字符,手动重新输入包含特殊字符的行(如CTE定义、字段别名行),彻底清除隐形非法字符。开启VS Code控制字符可见性
在VS Code设置中搜索并勾选editor.renderControlCharacters,使所有隐藏控制字符可视化,直接删除即可。
内容的提问来源于stack exchange,提问作者Ali 34
相关产品推荐
相关产品推荐

