使用管道函数访问 PL/SQL 对象集合中的方法

问题描述 投票:0回答:1

我创建了一个包含属性和方法的对象类型。我使用返回该对象集合的管道函数访问该对象。这是有效的文件,除了我无法访问集合中返回的对象的任何方法。我可以很好地看到属性。

使用管道函数时是否可以访问对象的方法? 我不确定我是否误解了管道函数的工作原理,或者我应该使用不同的方法。

我这样做是为了加快长时间运行且占用内存的进程。目标是并行使用管道来加快一切速度并在此过程中学习一些新东西。

--object
TYPE schema1.cool_object FORCE AS OBJECT
(
-- Attributes
att_pid NUMBER,
att_some_number number,
--method
method function some_number_doubled Return Number.
)
--nested table type of cool_object
TYPE schema1.cool_object_ns IS TABLE OF schema1.cool_object;

--Function takes (weak) ref cursor returns nested table of the object type
function f_pipeline(p_rows SYS_REFCURSOR) Return schema1.cool_object_ns

--Call to pipeline function
SELECT * FROM TABLE (schema1.package1.f_pipeline (CURSOR ( Select pid, some_number from person_table)));

返回一个对象,其中

attributes att_pid
att_some_number
可在对象中访问,但不能访问方法。

oracle oop plsql
1个回答
0
投票

尝试

SELECT t.*, t.some_number_doubled() FROM TABLE (schema1.package1.f_pipeline (CURSOR ( Select pid, some_number from person_table))) t;
© www.soinside.com 2019 - 2024. All rights reserved.