You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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],可以定位到核心问题并通过以下方式解决:

  1. 替换标识符中的变音字符
    错误行对应CTE名称Neuer_Schlüssel中的ü,BigQuery对标识符(CTE名、字段名、表名)的非ASCII字符支持有限,将带变音的字符替换为纯ASCII写法:

    • 把Neuer_Schlüssel改为Neuer_Schluessel
    • 同理检查其他带变音的标识符(如Artikelnummer_ohne_Farbe中的ö),统一替换为无变音形式
  2. 手动重写关键行
    复制粘贴可能残留难以检测的隐藏字符,手动重新输入包含特殊字符的行(如CTE定义、字段别名行),彻底清除隐形非法字符。

  3. 开启VS Code控制字符可见性
    在VS Code设置中搜索并勾选editor.renderControlCharacters,使所有隐藏控制字符可视化,直接删除即可。


内容的提问来源于stack exchange,提问作者Ali 34

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.18 22:03:29