У меня есть функция в PLSQL, и я пытаюсь вызвать ее из PowerBI, которую я наконец-то заставил работать.
В настоящее время, чтобы вернуть столбцы таблиц, мне нужно вручную указать типы.Есть ли способ просто отредактировать этот код, чтобы он возвращал все столбцы любой данной таблицы?
Это означает, что с учетом этого сценария мне нужно только изменить имя таблицы в сценарии, и он должен дать мне вседанные.
Я должен использовать PLSQL для этого, так как есть некоторая защита аутентификации для запросов к таблицам, которую я не могу просто запросить из PowerBI.
Drop Type VW_PEOPLE_TABLE;
Drop Type VW_PEOPLE_TYPE;
Drop Function TESTPOWERBI;
Drop Public Synonym PBI;
CREATE TYPE VW_PEOPLE_TYPE AS Object
{
Name VarChar2(70).
ALIAS VarChar2(90)
};
/
Create Type VW_PEOPLE_TABLE as TABLE OF VW_PEOPLE_TYPE;
/
Grant execute on VW_PEOPLE_TABLE TO public;
Create Function TESTPOWERBI
Return VW_PEOPLE_TABLE Pipelined AUTHID current_user AS VWT VW_PEOPLE_TABLE;
Pragma AUTONOMOUS_TRANSACTION;
Begin
Select VW_PEOPLE_TYPE(NAME,ALIAS)
Bulk COLLECT INTO VWT
FROM mytable;
FOR I IN 1 .. VWT.count
LOOP
PIPE ROW(VW_PEOPLE_TYPE(VWT(I).NAME, VWT(I).ALIAS));
END LOOP;
END TESTPOWERBI;
/
create public synonym PBI for TESTPOWERBI;
Grant Execute on PBI to public;