繁体   English   中英

如何为外部查询构建动态查询参数?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM