DocumentDB 输入绑定的 sqlQuery 与调制符号导致函数失败

2024-03-28

我在 Azure Functions 上使用 DocumentDB 输入绑定。

今天,我将以下查询指定为 sqlQuery。

SELECT c.id, c.created_at FROM c 
WHERE {epoch} - c.created_at_epoch >= 86400*31 
AND (CEILING({epoch}/86400) - CEILING(c.created_at_epoch / 86400)) % 31 = 0

之后,我在触发函数时看到以下错误。

2017-07-04T10:31:44.873 Function started (Id=95a2ab7a-8eb8-4568-b314-2c3b04a0eadf)
2017-07-04T10:31:49.544 Function completed (Failure, Id=95a2ab7a-8eb8-4568-b314-2c3b04a0eadf, Duration=4681ms)
2017-07-04T10:31:50.106 Exception while executing function: Functions.Bonus. Microsoft.Azure.WebJobs.Host: The '%' at position 148 does not have a closing '%'.

我想在 sqlQuery 中使用调制符号。我能做什么?

此致。


2017-07-15(JST) 附录。

今天,我尝试遵循另一个查询来避免这个问题。

SELECT c.id, c.created_at FROM c 
WHERE {epoch} - c.created_at_epoch >= 86400*31 AND 
(CEILING({epoch}/86400) - CEILING(c.created_at_epoch / 86400)) - 
(31 * 
    CEILING(
        (CEILING({epoch}/86400) - CEILING(c.created_at_epoch / 86400)) 
        / 31
    )
) = 0

以防万一,我尝试了在 Cosmos DB 上指定 epoch = 1499218423 的查询。

SELECT c.id, c.created_at FROM c 
WHERE 1499218423 - c.created_at_epoch >= 86400*31 AND 
(CEILING(1499218423/86400) - CEILING(c.created_at_epoch / 86400)) - 
(31 * 
    CEILING(
        (CEILING(1499218423/86400) - CEILING(c.created_at_epoch / 86400))
        / 31
    )
) = 0

结果如下。

[
  {
    "id": "70251cbf-44b3-4cd9-991f-81127ad78bca",
    "created_at": "2017-05-11 18:46:16"
  },
  {
    "id": "0fa31de2-4832-49ea-a0c6-b517d64ede85",
    "created_at": "2017-05-11 18:48:22"
  },
  {
    "id": "b9959d15-92e7-41c3-8eff-718c4ab2be6e",
    "created_at": "2017-05-11 19:01:43"
  }
]

看起来不错。然后我将其指定为 sqlQuery 并使用以下队列数据进行测试。

{"epoch":1499218423}

该函数的代码如下。

module.exports = function (context, myQueueItem) {
    context.log(context.bindings.members, myQueueItem);
    context.done();
};

之后,我看到了以下结果。

2017-07-05T03:00:47.158 Function started (Id=e4d060b5-3ddc-4271-bf91-9f314e7e1148)
2017-07-05T03:00:47.408 [] { epoch: 1499871600 }
2017-07-05T03:00:47.408 Function completed (Success, Id=e4d060b5-3ddc-4271-bf91-9f314e7e1148, Duration=245ms)

它看起来绑定结果存在差异(如 context.bindings.members)。

为什么会出现这种差异呢?

相关问题:Azure Cosmos DB 查询资源管理器的结果与 Azure Functions 结果之间的差异 https://stackoverflow.com/questions/44916811/deferences-among-the-azure-cosmosdb-query-explorers-results-and-the-azure-funct


我想在 sqlQuery 中使用调制符号。我能做什么?

Azure 函数配置中的调制符号 (%) 用于从应用设置中检索值。对于您的问题,我建议您在应用程序设置中添加一个项目,如下所示。

之后,您可以在查询中使用 %modulationsymbol% 而不是 %,如下所示。

SELECT c.id, c.created_at FROM c 
WHERE {epoch} - c.created_at_epoch >= 86400*31 
AND (CEILING({epoch}/86400) - CEILING(c.created_at_epoch / 86400)) %modulationsymbol% 31 = 0
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

DocumentDB 输入绑定的 sqlQuery 与调制符号导致函数失败 的相关文章

随机推荐

  • 将引用单元格公式添加到代码中

    在此输入图像描述 https i stack imgur com 48OqU jpg 这就是输出 https i stack imgur com FCqOg jpg 我在单元格 C1 中有这个公式 用于平均第 2 列中的值相对于第 1 列的
  • rake 数据库适配器与database.yml不一致

    In database yml rails 生成的默认文件 default default adapter sqlite3 pool 5 timeout 5000 development lt lt default database db
  • 无法与 aSmack 4.0.2 建立新连接

    我正在学习 Android 编程 这几天我一直在努力解决这个问题 我正在编写一个应该连接到 XMPP 服务器的 Android 应用程序 我总是遇到同样的错误 并且真的不知道我做错了什么 我尝试过通过谷歌找到的示例代码 但也无法与它们建立连
  • 循环遍历 PL/pgSQL 中给定的值列表

    我试图循环遍历几个字段并在它们上运行一个函数 FOR field IN ARRAY f1 f2 LOOP execute pg temp converFieldToLower newTableNameRaw field END LOOP 这
  • 监视单元格值并将其复制到另一个单元格

    我想知道如何监视单元格值并使该值始终在其他单元格上更新 到目前为止 我一直在使用 符号 然后选择我想要监视的单元格 问题是我正在监视的行 单元格由于另一个 vba 脚本而不断更新 当发生这种情况时我得到REF error e g On th
  • 将变量值从第二个 PowerShell 脚本返回到第一个 PowerShell 脚本?

    我创建1 ps1调用的脚本2 ps1脚本 打电话后2 ps1它给出了一些结果 variable 我要这个 variable结果将在我的中使用1 ps1用于操纵 csv Get Content 10 46 198 141 try window
  • matplotlib 两种颜色之间的颜色渐变

    我想要 matplotlib 中黑色和红色之间的颜色渐变 其中低值是黑色 随着 Y 值的增加而变得越来越红色 import matplotlib pyplot as plt xvals np arange 0 1 0 01 yvals xv
  • 使用 str_extract_all 查找多个字符串

    我有一个字符串列表 如下所示 tofind lt c aaa bbb ccc ddd 我还有一个向量如下 n lt c aaabbb aaa aaacccddd eee 我想找到我的所有匹配项tofind字符串 以便输出应该是 aaa bb
  • 如何使用 dcpcrypt 在 delphi 和 php 之间同步加密

    我正在使用 Delphi 2009 我在这里看到的大多数答案都是针对 2010 我正在尝试将加密 delphi 同步到解密 php 并且失败 在delphi中生成加密字符串 program Project4 APPTYPE CONSOLE
  • 带键的 array_pop()

    考虑以下数组 array array fruit gt apple vegetable gt potato dairy gt cheese 我想用数组弹出 http php net manual en function array pop
  • 从 matplotlib 轴对象获取数据

    我正在尝试确定 matplotlib 上的数据点axes http matplotlib org api axes api html matplotlib axes 是否有我缺少的属性Axes http matplotlib org api
  • 被释放的指针未分配[Swift]

    我正在尝试读取 TCP 套接字连接中的长字符串 对于读取短长度字符串 它工作正常 但是当我尝试发送长长度的 base64 编码图像时 它崩溃了 我尝试增加到maxReadLength 10000 但仍然不起作用 读取传入消息 private
  • 在转储文件上使用 pg_restore

    我在 Heroku 上有一个数据库 我正在尝试将其复制到本地计算机 我通过执行以下操作创建了数据库的备份 heroku pgbackups capture 这将创建一个数据库的转储文件 我通过创建指向该数据库的 URL 链接来下载该文件 h
  • Ajax 删除链接 注销current_user

    标题几乎解释了这一点 我遇到了一种奇怪的情况 允许用户使用 Ajax 删除通知的视图会导致 current user 被注销 我什至不知道从哪里开始调试这个 这是控制器 class NotificationsController lt Ap
  • 如何从 JPA 标准中的时间戳列中按日期查找?

    我想按日期查找记录 在实体和数据库表中 数据类型是时间戳 我用的是Oracle数据库 Entity public class Request implements Serializable Id private String id Vers
  • 寻找有关 Jeff 幻灯片中介绍的“Group varint 编码/解码”的更多详细信息

    我注意到 Jeff 的幻灯片 构建大规模信息检索系统的挑战 也可以在这里下载 http research google com people jeff WSDM09 keynote pdf http research google com
  • 使用 sql 查询结果填充 datagridview

    我正在尝试显示查询结果 但我不断收到空白数据网格 就像数据本身不可见一样 这是我的代码 private void Employee Report Load object sender EventArgs e string select SE
  • Rails 3.2 流数据

    显然 rails 3 2 中不再提供带有 proc 的 render text 方法来传输数据 我按照以下说明进行操作 讨论 https stackoverflow com questions 3507594 ruby on rails 3
  • 使用 Mongo API 在 Cosmos DB 中的共享吞吐量集合上创建唯一索引

    我尝试按照以下说明进行操作微软文档 https learn microsoft com en gb azure cosmos db mongodb indexing creating unique indexes在分区集合上创建唯一索引 d
  • DocumentDB 输入绑定的 sqlQuery 与调制符号导致函数失败

    我在 Azure Functions 上使用 DocumentDB 输入绑定 今天 我将以下查询指定为 sqlQuery SELECT c id c created at FROM c WHERE epoch c created at ep