gpt4 book ai didi

带有 NUL 的 SQLite 字符串

转载 作者:行者123 更新时间:2023-12-03 15:54:05 26 4
gpt4 key购买 nike

  • SQLite 3 中的字符串是否可以包含 NUL人物?
  • 如果 1 的答案是"is",那么它们如何写在 SQL 查询中? SQLite 似乎没有 chrchar职能。
  • 最佳答案

    一般来说,不——SQLite 内部不是 8 位干净的,可能是由于它的 Tcl 遗产。虽然 NUL 不会导致损坏问题,但 SQLite 通常会在第一个嵌入的 NUL 字符处停止处理字符串。

    即使对于像 GLOB 这样的运算符也是如此。例如,您不能将 BLOB 列与 GLOB 匹配。当您嵌入 NUL 字符时,例如这

    select * from table where blobcol glob x'00022a';

    将只匹配空 blob 值:虽然您可以使用文字 BLOB 语法(即 x'hexdigits' )并在使用字符串的地方使用结果值,但 SQLite 通常只使用第一个 NUL 之前的部分。

    至少,。这是包括 SQLite 3.26.0 在内的情况。

    请注意,SQLite 也有一个 BLOB 类型,它可以毫无问题地存储嵌入式 NUL,但 SQLite 中几乎没有使用它们的功能,而且它们通常更难从 SQL 接口(interface)库中使用。

    它们还在许多上下文中默默地转换为字符串,此时嵌入式 NUL 再次开始引起问题。

    关于带有 NUL 的 SQLite 字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4049348/

    26 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com