在SQL中处理来自Oracle的嵌套用户定义表类型的选项是什么?



我们正在从Oracle迁移到Azure SQL。在Oracle中,用户定义的表类型是嵌套的。例如,Manager Table Type将Employee TableType作为其中一列。据我所知,SQL server不允许嵌套表类型。也许是因为它打破了正常形态,但Oracle允许它。现在的挑战是其中一个表类型对象需要作为Java的参数传递给存储过程。我们如何在SQL server中处理这个而不使Java中的结构变平?我想通过所有的表对象包括父母和孩子,然后宣布接收各种sql表类型在sql SP。但挑战将是,家长对孩子会有一个引用传入的参数,我怎么处理,在sql ?

现在面临的挑战是需要一个表类型的对象作为参数传递给存储过程从Java。我们如何在SQL server中处理这个问题而不使Java中的结构扁平化?

使用JSON。JSON文档(XML也是如此)允许将任意数据形状从客户端传递到SQL Server,并在那里使用OPENJSON。并且不需要为您想要传递给服务器的每种不同的数据形状创建用户定义的表类型。

如果Java开发人员更喜欢使用XML,那也可以。

最新更新