[英]External_query with dynamic query - Error: Connection argument in EXTERNAL_QUERY must be a literal string or query parameter
[英]How to build dynamic query argument for external query?
我想基于EXTERNAL_QUERY
的声明变量构建动态查询参数。 所以我通过连接 2 个字符串声明STRING
变量:
DECLARE str STRING DEFAULT "SELECT * FROM public.stats WHERE import_date >= "||"'2021-11-29'";
然后尝试将此变量设置为EXTERNAL_QUERY
的参数:
SELECT * FROM EXTERNAL_QUERY("dataset.location.conn_name", str);
它返回一个错误:
Query error: Invalid table-valued function EXTERNAL_QUERY Connection argument in EXTERNAL_QUERY must be a literal string or query parameter
我做错了什么?
不完美,但对我有用。
DECLARE str STRING DEFAULT '''"SELECT * FROM public.stats WHERE import_date >= "'''||"'2021-11-29'";
EXECUTE IMMEDIATE """
SELECT * FROM EXTERNAL_QUERY(\"dataset.location.conn_name\",?);
"""
USING str
感谢@Timogavk的回答,我花了一段时间寻找解决方案。
尽管在我的例子中,我不得不将 DECLARE 更改为更像这样的东西,但没有额外的引号才能工作(我正在动态查询不同的表):
DECLARE str STRING DEFAULT 'SELECT * FROM ' || <table_name> || ' Limit 10';
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.