在Oracle中,从单个结构中的多个查询返回数据
我必须创建一个屏幕,其中包含使用复杂连接等从多个不同表获取的数据。只有一个来自UI的服务调用来获取数据,这些数据将以JSON返回 这些就是我想到的方法在Oracle中,从单个结构中的多个查询返回数据,oracle,stored-procedures,Oracle,Stored Procedures,我必须创建一个屏幕,其中包含使用复杂连接等从多个不同表获取的数据。只有一个来自UI的服务调用来获取数据,这些数据将以JSON返回 这些就是我想到的方法 从服务层执行多个查询,填充一个对象并将JSON对象发送回 创建临时表,在更新原始数据时填充所需数据,并在显示上述屏幕时查询临时表 对我来说,这两种方法都没有说服力。我不希望从服务层多次调用数据库,也不希望为此目的创建临时表。相反,我想有一个存储过程,它将执行多个查询并返回一个自定义结构,该结构可以映射到Java对象,而Java对象又将返回到UI层
这可能吗?根据您的服务层、数据库层和数据库开发人员的功能,您有几种选择
sys\u refcursor
参数的存储过程;通过游标将所需的数据传递到服务层;让服务层构建JSON对象并将其发送到GUIsys\u refcursor
参数的存储过程,该参数将包含带有所需子结构的嵌套refcursor列;让服务层从中构建JSON对象并将其发送到GUI是的,这是可能的。您想做什么取决于性能是否可以接受。存储过程是一个很好的选择。如果没有涉及DML语句,那么最好使用函数,当然没有这样的规则。谢谢。听起来不错。让我试试这些,然后回复。