如何通过 LIKE SQL 命令使用 Azure sql_input 中的参数

问题描述 投票:0回答:1

在 Azure 中的 V2 Python Cloud Function 中工作,我尝试实现从 URL 到 Azure SQL 数据库查询的参数。我在使用 SQL 时无法这样做

LIKE

我已成功建立与数据库的连接。我还设法使用装饰器在查询中使用来自 URL 的参数:

@app.route("select_name/{name_string}")
@app.sql_input(arg_name="people",
                        command_text="SELECT * FROM dbo.test WHERE name = @Name",
                        command_type="Text",
                        parameters="@Name={name_string}",
                        connection_string_setting="SqlConnectionString")

但是,当我尝试将查询从

WHERE
更改为
LIKE
并将其与 UPPER 组合时,如下所示:

@app.route("select_name/{name_string}")
@app.sql_input(arg_name="people",
                        command_text="SELECT * FROM dbo.test WHERE UPPER(name) LIKE UPPER('%@Name%')",
                        command_type="Text",
                        parameters="@Name={name_string}",
                        connection_string_setting="SqlConnectionString")

...我得到错误描述:

System.Private.CoreLib: Exception while executing function: Functions.get_people_by_name. Microsoft.Azure.WebJobs.Host: '%@Name%' does not resolve to a value.

我知道在 SQL 查询中解析变量不希望使用这样的语法。

我该如何解决这个问题?也许有更灵活的方法从云函数查询 Azure SQL?也许你会推荐更多基于Python的解决方案,而不一定依赖装饰器?

同时,如果您能为我指出一些与从云函数进行 SQL 查询和构建 API 相关的好资源,我将不胜感激。我发现 Azure 文档不容易使用,并且很想在其他地方找到一些好的资源。

python azure azure-sql-database azure-python-sdk
1个回答
0
投票

您应该能够使用类似

SELECT * FROM dbo.test WHERE UPPER(name) LIKE UPPER('%' + @Name + '%')

之类的东西
© www.soinside.com 2019 - 2024. All rights reserved.