在 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 文档不容易使用,并且很想在其他地方找到一些好的资源。
您应该能够使用类似
SELECT * FROM dbo.test WHERE UPPER(name) LIKE UPPER('%' + @Name + '%')
之类的东西