簡體   English   中英

BigQuery-執行立即語句時出現神秘的“未閉合字符串文字”錯誤

[英]BigQuery- Mystery "unclosed string literal" error from execute immediate statement

我正在處理一個在設置表描述元數據時創建表的腳本。 最終這會將變量表名和表描述作為輸入,因此需要立即執行語句。 現在為了讓事情更清晰,我只是將變量設置為 static 字符串。 我希望表格描述有多個新行,因為我將在其中包含一些不同的信息,出於易讀性原因,我不想將它們全部放在一行中。

我的代碼(下方)對我來說看起來是正確的,但是當我運行它時,出現錯誤:

Invalid EXECUTE IMMEDIATE sql string ` CREATE OR REPLACE TABLE `project.dataset.example_table` OPTIONS ( description = ' This is a table description. It uses multiple lines. ' ) AS ( Select 1 ) `, Syntax error: Unclosed string literal at [12:19]`

我真的沒有看到這個未閉合的字符串文字在哪里。 如果我從錯誤消息中復制 SQL 字符串並運行它,它就可以正常工作。 我唯一能想到的是它是否與 table_description 變量中的換行符有關?

Declare table_name string;
Declare table_description string;

Set table_name = 'project.dataset.example_table';
Set table_description =
"""
This is a table description.

It uses multiple lines.
""";

EXECUTE IMMEDIATE """
CREATE OR REPLACE TABLE `""" || table_name || """`
OPTIONS (
    description = '""" || table_description || """'
) AS (
Select 1
)
""";


下面是固定版本 - 只需比較一下就可以看到幾個“修復”

Declare table_name string;
Declare table_description string;

Set table_name = 'project.dataset.example_table';
Set table_description =
"""
This is a table description.

It uses multiple lines.
""";

EXECUTE IMMEDIATE   """
CREATE OR REPLACE TABLE `""" || table_name || """`
OPTIONS (
    description = '''""" || table_description || """'''
) AS (
Select 1 as col_name
)
""";

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM