c - PostgreSQL:文本到 JSONB - 总大小超过最大值

标签 c postgresql

我在文本字段中导入了一个 JSON 数组,并想将其转换为 JSONB。

我得到以下错误

SQL Error [54000]: ERROR: total size of jsonb array elements exceeds the maximum of 268435455 bytes ERROR: total size of jsonb array elements exceeds the maximum of 268435455 bytes ERROR: total size of jsonb array elements exceeds the maximum of 268435455 bytes

pg_column_size() 函数返回大小为 59,596,497。

在我使用 COPY 命令将数据导入 Postgres 数据库之前,JSON 数据在磁盘上的大小为 200 MB。

我该如何解决这个问题?例如。通过在导入之前计算磁盘上我的 JSON 文件的结果大小?

更新:我找到了引发此异常的类的源代码。也许精通 C 的人可以看一看。

最佳答案

文本数据保存在postgres表中会比较大。 您可以获得一个近似值:DATA_SIZE*1,28 2nd Quadrant .

此外,在加载数据之前,select pg_column_size(to_jsonb('[DATA]'::text)) 会提示您预期的大小。

关于c - PostgreSQL:文本到 JSONB - 总大小超过最大值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48931558/

相关文章:

c++ - 闭区间均匀随机数发生器

关闭 BSD 套接字中的套接字

c - 在另一个结构中分配结构的内存

c - 如何计算在c中使用fread()读取了多少新行?

SQL:高效计算花费的时间

sql - 为什么在使用OVER(PARTITION BY x)时需要在GROUP BY中包含一个字段?

postgresql - 如何在 PostgreSQL 中调试触发器递归?

python - Libssl 和 libcrypto 导致 dyld : Library not loaded:/usr/lib/libpq. 5.dylib

sql - 在带/不带时区的日期或时间戳的查询中处理 generate_series()

java - 在Java中直接编辑JNI指针的内容