首页 > 解决方案 > 如何在不截断数据的情况下将 CLOB 列迁移到 DB2 中的 (json) BLOB?

问题描述

我有一个 DB2 11 数据库,其中有一个大表,其中 JSON 数据存储在 CLOB 列中。鉴于我想使用 JSON_VAL 函数对其执行查询,我总是需要先使用 JSON2BSON 对其进行转换,我认为这是一个很大的开销。我想将数据移动到另一个具有完全相同结构的表中,除了我想用 BLOB 替换的 CLOB 列以将 JSON 立即存储在 BLOB 中,希望这会加快我的查询速度。

我的方法是写一个

insert into newtable (ID, BLOBDATA) select ID, SYSTOOLS.JSON2BSON(CLOBDATA) from oldtable;

这样做之后,我意识到长 json 对象被截断了。我已经对此进行了谷歌搜索,并了解到选择截断大对象。

我正在联系这里,看看是否有任何简单的方法可以让我进行这项练习,而无需编写程序来读取和写回所有数据。(当我使用 DB2 csv 导出功能时,我自己也因类似的截断而被烧毁。)

谢谢。

标签: jsondb2blobclob

解决方案


从 Db2 11.1.4.4 开始,有基于 ISO 技术文件的新 JSON 函数。我建议使用它们。它们是未来的战略功能。

您可以使用JSON_VALUE执行您计划使用 JSON_VAL 执行的等效操作。


推荐阅读