繁体   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