当前位置: 首页 > 知识库问答 >
问题:

PDO OCI截断大型多字节CLOB

濮阳安澜
2023-03-14

当PDO OCI通过PDO::Fetch()返回我的行时,我的CLOB列已经是PHP流了。在长CLOB中包含多字节UTF-8字符的情况下,当我读取这个流时,它会被截断。

实例

  • 我的头饰是一串8193英镑的符号(“”)...16,386字节
  • 返回的行数组将列显示为“resource type='stream'”
  • 我执行stream_get_contents()从流中获取字符串
  • 我的字符串为8,192个字符...16,384字节
  • 因此我失去了一个字符

另:

    <丽>我的头饰是一串10万英镑的标志...200,000字节
  • 与上述步骤相同
  • 我的字符串是50,848个字符...101,696字节
  • 因此我丢失了49,152个字符

我可以通过获取整个CLOB的完整大小(lob->size())并将其用作LOB读取大小来解决这个问题,从而在一次大读取中提取所有内容。

我在PDO OCI看不到这样做的方法。

我的预感是,PDO OCI中的内部代码可能正在执行类似的读取循环,以将LOB转换为PHP流。

共有1个答案

微生烨然
2023-03-14

事实证明,这可能确实是一个PDO_OCI bug:“base bug需要修复(还没有关于这个的ETA)”(https://github.com/php/php-src/pull/1566,引用(https://bugs.php.net/bug.php?id=60994)。

 类似资料:
  • 问题内容: 我正在尝试在字符串过滤器中使用此方法: 我希望这 还有这个 那是减去字符串的字符。 另外,假定过滤器在低于限制的第一个单词边界处剪切,例如 我很确定这应该与这些步骤一起使用 从终止符中减去终止符中的字符数 验证该字符串是否长于计算出的限制,或者将其保留不变 在计算的限制以下找到字符串中的最后一个空格字符以获取单词边界 如果找不到最后一个空格,则在最后一个空格处剪切字符串或计算出的限制

  • 问题内容: 我有大量文件,所有文件都(应该)是在文件末尾附加一个前哨字符(1个字节)。如何读取最后一个字节(以确保它是字符)并将其截断为大小(即:删除字符)? 我知道我可以阅读整个内容,然后将其写回去减去最后一个字符,但是必须有一种方法可以获取特定的字节,不是吗? 问题答案: 您可以使用RandomAccessFile类查找文件的末尾,读取它,然后使用截断该文件。 更新: 这是一些代码: 注意:我

  • 问题内容: 如何在Python中将字符串截断为75个字符? 这是用JavaScript完成的方式: 问题答案:

  • 一面面了100分钟。 虽然约了二面,但是一面过程中有一些不足想向牛客的大家请教一下。 面试官问了两个场景题,问我该怎么做,一个用多模态大模型做xx任务,一个是多模态大模型的xxx能力不足怎么解决。 我感觉自己回答的非常差劲,想问问大家,有什么好的建议吗。作为一个被面试者,从哪方面回答,需要深入到什么程度呀,面试官需要我表现出怎样的问题解决能力呀 #你的秋招进行到哪一步了#

  • 问题内容: 我试图截断一个表,但是为什么它不起作用?数据库查询中一定有问题吗? 理想情况下,我想一次性截断所有表-有可能吗? 如果您想知道我用来进行数据库查询的类的内容是什么, 谢谢。 编辑: 下面是我如何调用db对象, 问题答案: 谢谢你们的帮助!这是我的答案,

  • 全长25分钟不到,面试官感觉很随意 感觉被kpi了,一个月被两次kpi😅 开头自我介绍+项目简介 5分钟 八股5分钟 1.transformer,encorder-decorder 2.mutihead-attention,qkv矩阵 3.gpt和bert的结构 4.位置编码,transformer和bert和gpt的都问了 5.QLora的原理,量化类型 场景题 1.多个不同长度的句子怎么转为