gpt4 book ai didi

javascript - 如何在不使用 plv8.elog() 的情况下获取 plv8 中变量的值?

转载 作者:搜寻专家 更新时间:2023-11-01 04:37:34 26 4
gpt4 key购买 nike

我在从 plv8.elog() 获取正确输出时遇到问题。刚开始,我在 Ubuntu 12.10 上使用由 pgxn 安装的 PostgreSQL 9.2,plv8 1.4.1。我有一个正在构建的函数,它包括嵌套游标循环并使用许多准备好的语句。我正在正确关闭游标并释放准备好的语句。所有这些功能都会生成一个对象数组,这些对象是将插入到多个不同表中的记录。

它崩溃的地方是我使用对象中的数据循环遍历该数组以生成查询字符串。我正处于这部分代码的构建阶段,所以在我通常会执行查询字符串的地方,我尝试将它输出到控制台。这就是腐败发生的地方。

在我的测试中输出它生成的 9 个查询字符串时,只显示了其中的 7 个。当我进入 postgres 日志时,我发现在 2 个丢失的查询字符串的末尾,有一个看起来像菱形的字符,里面有一个问号。基本上就是一些当前字符集中无法显示的字符。我已经测试了查询生成器代码的所有部分,但找不到任何原因。我认为 plv8.elog() 函数或 plv8 引擎的字符串连接功能由于某种原因正在损坏。

我遇到的问题是,如果它是字符串连接功能,我无法相信查询字符串会正确执行。我通过将代码从函数中删除并使用数组中的静态信息来测试代码。在这种情况下,它工作正常,所以我知道那部分代码没有问题。

首先,有没有其他人见过这个?来自 plv8.elog() 的损坏或奇怪的行为?当您的函数达到一定大小或复杂性时,是否有数据损坏?如果是这样,您是否能够想出一种至少解决它的方法?

另外,如果是 plv8.elog() 函数,是否有另一种获取变量值的方法?我知道应该有 v8 调试器功能,但我没能成功。如果有人有让它工作的经验,你能帮我让它工作吗?谢谢。

最佳答案

发生这种情况是因为 plv8 的日志输出被限制在一定数量的字节/位。如果您连接几个长字符串并将其发送到 plv8.elog(),它会在达到最大字节/位数后切断字符串。为了解决这个问题,我这样做:

plv8.elog(INFO, myString.substring(0,800));
plv8.elog(INFO, myString.substring(801,1600));
plv8.elog(INFO, myString.substring(1601,2400));

我认为限制是 1024,但其中一些被日志输出的 INFO: 部分占用了。

关于javascript - 如何在不使用 plv8.elog() 的情况下获取 plv8 中变量的值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17475579/

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