BigQuery执行即时标识符问题



我正在创建一个BQ存储过程来截断数据集中的所有表。我有一个两步的过程。步骤1识别所有匹配的表。第2步需要遍历每个表并截断。

我有以下代码来实现这一点:

for record in
( select TABLE_NAME 
from <staging_dataset>.INFORMATION_SCHEMA.TABLES
)
DO
execute immediate 
"truncate table @tab" using record.TABLE_NAME as tab;
END FOR; 

我遇到的错误在立即执行部分中。

Invalid EXECUTE IMMEDIATE sql string `truncate table @tab`, Syntax error: Unexpected "@" at [8:3]

我尝试将@选项卡替换为?占位符,并看到类似的错误。我做错了什么?有没有其他方法可以达到同样的结果?

奇怪;DML似乎不适用于CCD_ 1。查询工作正常。

尝试使用CONCAT构建动态查询字符串:

CONCAT("truncate table ", record.TABLE_NAME);

相关内容

  • 没有找到相关文章

最新更新