答:

如果数据已经存在,那么这是一项必须重视的任务,特别是如果存在继承或父/子关系,因为这将导致你的数据存储方案的改变。

最简单的方法是通过一个中间(临时)表来实现。

创建一个具有相同结构的新类,但有一个新的主键。
使用SQL(不是合并命令)将数据从旧的类中移到它里面。
删除旧类中的数据/索引,然后改变其中的主键。
使用合并命令,将数据从新类移到旧类中。
删除带有数据的新类。
重建索引(如果有的话)。

几个有用的链接:
        MERGE

有两种策略。

1)使用动态对象在循环中遍历你的JSON数组,提取需要的字段直接保存到SDA属性中。这是我几年前所做的,当时我必须从一个只能输出JSON的产品中获取数据。一旦你有了最终的SDA,你就可以把它写到一个文件里。

2) 由于你是在IRIS上,你可以使用%JSON.Adaptor。我没有使用过它,但我认为它的工作原理与%XML.Adaptor一样。如果你的类继承了%JSON.Adaptor,它基本上就知道你的JSON结构。然后,你可以创建Cache对象作为你的数据模型,用于输入的JSON,并简单地将其属性复制到SDA属性中。

希望这有帮助。

更多讨论请参考英文社区:https://community.intersystems.com/post/how-transform-json-sda-and-write...