Вы можете создать функцию PIPELINED TABLE .
допустим, это ваша таблица.
create table vw_people ( ID INTEGER, NAME VARCHAR2(10));
INSERT INTO vw_people(id,name) VALUES ( 1,'Knayak');
commit;
создайте объект и коллекцию объектов типа
CREATE OR REPLACE TYPE vw_people_typ AS OBJECT( ID INTEGER,NAME VARCHAR2(10));
CREATE OR REPLACE TYPE vw_people_tab AS TABLE OF vw_people_typ;
Это ваша функция
CREATE OR REPLACE FUNCTION testpowerbi RETURN vw_people_tab
PIPELINED
AUTHID current_user
AS
vwt vw_people_tab;
PRAGMA autonomous_transaction;
BEGIN
sar.pk_sar_enable_roles;
commit;
SELECT
vw_people_typ(id,name)
BULK COLLECT
INTO vwt
FROM
vw_people;
FOR i IN 1..vwt.count LOOP
PIPE ROW ( vw_people_typ(vwt(i).id,vwt(i).name) );
END LOOP;
END testpowerbi;
/
Запросить вывод функции как TABLE
select * from TABLE(TestPowerBI);
ID NAME
---------- ----------
1 Knayak