|
возвращаемый тип данных в pipelined function
|
|||
---|---|---|---|
#18+
Всем привет! Есть несколько pipelined functions (show_table1, show_table2 и т д.), которые возвращают тип TYPE CP_T IS TABLE OF CP_CUR%ROWTYPE где CP_CUR - это курсор содержащий запрос к определенной таблице. Хочу сделать pipelined функцию, которой буду передавать название таблицы, а она будет вызывать уже ту pipelined ф-цию, которая возвращает из той таблички данные. Нужно следующиее: Код: plaintext 1. 2. 3. 4. 5. 6.
Только вот какой тип данных будет возвращать??? Функции то вызываемые на разных курсорах основаны. ... |
|||
:
Нравится:
Не нравится:
|
|||
12.08.2009, 15:24 |
|
возвращаемый тип данных в pipelined function
|
|||
---|---|---|---|
#18+
чего-то Вы такого хотите... ... |
|||
:
Нравится:
Не нравится:
|
|||
12.08.2009, 15:26 |
|
возвращаемый тип данных в pipelined function
|
|||
---|---|---|---|
#18+
дык начинающих программистов завсегда тянет на универсальность :) ... |
|||
:
Нравится:
Не нравится:
|
|||
12.08.2009, 15:27 |
|
возвращаемый тип данных в pipelined function
|
|||
---|---|---|---|
#18+
Roxen, это Вы решили собственный вариант оператора SELECT сделать? Чтобы имя таблицы в функцию передавать, а не указывать во FROM... ... |
|||
:
Нравится:
Не нравится:
|
|||
12.08.2009, 15:55 |
|
возвращаемый тип данных в pipelined function
|
|||
---|---|---|---|
#18+
suPPLerRoxen, это Вы решили собственный вариант оператора SELECT сделать? Чтобы имя таблицы в функцию передавать, а не указывать во FROM... Мне не нужен SELECT. От селектов я ухожу, т.к. при изменении таблиц летят приложения на них постороенные. Вот я и "зашиваю" выборку в функцию. Тем более там селект с использованием пяти таблиц. Просто вместо того чтобы давать разработчикам приложений кучу функций для выборки из разных таблиц я хочу дать ОДНУ, где только нужно будет указать название таблицы. ... |
|||
:
Нравится:
Не нравится:
|
|||
12.08.2009, 16:16 |
|
возвращаемый тип данных в pipelined function
|
|||
---|---|---|---|
#18+
RoxenМне не нужен SELECT. От селектов я ухожу, т.к. при изменении таблиц летят приложения на них постороенные. ... Как страшно жить! (с) А. И. Куприн. И куда летят эти приложения? Там в них случайно не SELECT * FROM ... используется? Если уж Вы так часто меняете таблицы и не хотите напрягать разработчиков приложений, то используйте представления. Изменилась таблица - изменилось и представление. А приложение об этом и не узнало... ... |
|||
:
Нравится:
Не нравится:
|
|||
12.08.2009, 16:39 |
|
возвращаемый тип данных в pipelined function
|
|||
---|---|---|---|
#18+
Может возвращать из функции курсор? Мы именно так и делаем. И приложению вовсе не надо знать имена таблиц. По-моему у Тома Кайта на эту тему написано хорошо. что-то вроде case p_table_code when 1 then open p_cursor as select ... from table_1; when 2 then open p_cursor as select ... from table_2; .... С точки зрения БД возвращать курсоры намного лучше чем в приложении селектить из пипилизированных функций. ... |
|||
:
Нравится:
Не нравится:
|
|||
12.08.2009, 17:49 |
|
возвращаемый тип данных в pipelined function
|
|||
---|---|---|---|
#18+
Roxen, То что Вы хотите не реализуемо нормальными методами. БД это Вам не ООП с расследованиями и типом данных VARIANT :) она( БД ) не для этих целей. ... |
|||
:
Нравится:
Не нравится:
|
|||
12.08.2009, 18:18 |
|
возвращаемый тип данных в pipelined function
|
|||
---|---|---|---|
#18+
p С точки зрения БД возвращать курсоры намного лучше чем в приложении селектить из пипилизированных функций. Это чем же лучше? А чем хуже( или внезапно ВСЕМ лучше )? И в каких ситуйовинах. Где исследования? Где факты? Где лулзы в конце концов?! ... |
|||
:
Нравится:
Не нравится:
|
|||
12.08.2009, 18:20 |
|
возвращаемый тип данных в pipelined function
|
|||
---|---|---|---|
#18+
Ваи нужно использовать AnyDataSet табличные функции, те функции которые определяют структуру возвращаемого курсора в run-time Вот хорошая статья где описывается этот метод method 4 dynamic sql in pl/sql ... |
|||
:
Нравится:
Не нравится:
|
|||
12.08.2009, 21:26 |
|
возвращаемый тип данных в pipelined function
|
|||
---|---|---|---|
#18+
AnyDataSetВаи нужно использовать AnyDataSet табличные функции, те функции которые определяют структуру возвращаемого курсора в run-time Вот хорошая статья где описывается этот метод method 4 dynamic sql in pl/sql вот только вот вас (, AnyDataSet) топикстартеру и не хватало для счастья , как только запросы из своей прикладнухи доповыкинет хотя,.. какой вопрос-такой ответ.. ... |
|||
:
Нравится:
Не нравится:
|
|||
12.08.2009, 21:40 |
|
возвращаемый тип данных в pipelined function
|
|||
---|---|---|---|
#18+
to orawish Я чо-то тебя не понял: прозвучал конкретный вопрос получен чисто конкретный ответ В чем проблема ? :-) ... |
|||
:
Нравится:
Не нравится:
|
|||
12.08.2009, 22:41 |
|
возвращаемый тип данных в pipelined function
|
|||
---|---|---|---|
#18+
Рада что нашлись люди, которые поняли что я имею ввиду. AnyDataset , Огромное спасибо за ссылочку. Она мне очень пригодилась. Вот тоже ссылка неплохая на эту тему. Любителям постебаться, таким как orawish , рекомендую почитать дабы в будущем быть поскромнее. ... |
|||
:
Нравится:
Не нравится:
|
|||
20.08.2009, 14:02 |
|
возвращаемый тип данных в pipelined function
|
|||
---|---|---|---|
#18+
Roxen, "Как страшно жить..."(С) ... |
|||
:
Нравится:
Не нравится:
|
|||
20.08.2009, 14:11 |
|
возвращаемый тип данных в pipelined function
|
|||
---|---|---|---|
#18+
AnyDataSet, у меня нет типа sys.ODCITabFuncInfo версия оракла: Oracle9i Enterprise Edition Release 9.2.0.8.0 Что делать :) ? ... |
|||
:
Нравится:
Не нравится:
|
|||
20.12.2010, 13:27 |
|
возвращаемый тип данных в pipelined function
|
|||
---|---|---|---|
#18+
tru55дык начинающих программистов завсегда тянет на универсальность :) Конечно! И только продуманные старпёры из отделов АСУ обожают дбфы и если уж и перелезли на оракл, то предпочитают накопипастить тыщщу отчётов с разными группировками и менять их все при изменении одного условия или добавлении одного фильтра. Спрашивал в другой ветке про вызов селекта из курсора, так там такой же, нет бы, сказать про Pipelined, начал так же глубокомысленно гнуть пальцы... ... |
|||
:
Нравится:
Не нравится:
|
|||
13.01.2012, 14:28 |
|
возвращаемый тип данных в pipelined function
|
|||
---|---|---|---|
#18+
dmitryk1tru55дык начинающих программистов завсегда тянет на универсальность :) Конечно! И только продуманные старпёры из отделов АСУ обожают дбфы и если уж и перелезли на оракл, то предпочитают накопипастить тыщщу отчётов с разными группировками и менять их все при изменении одного условия или добавлении одного фильтра. Спрашивал в другой ветке про вызов селекта из курсора, так там такой же, нет бы, сказать про Pipelined, начал так же глубокомысленно гнуть пальцы... Ты вообще внимательно прочитал топик? Тут суть не в pipelined, а в том, что человек хотел сделать одну функцию для работы с разными таблицами, что автоматом влечет применение dynamic SQL. А применение dynamic SQL в общем случае ведет к потере производительности. Или для тебя важнее, чтобы меньше писать кода, а что там с производительностью - наплевать? К слову сказать, какое отношение dbf-ки имеют к тысяче отчетов? Ну и совсем для сведения: файлы Oracle тоже могут иметЬ расширение dbf ... |
|||
:
Нравится:
Не нравится:
|
|||
13.01.2012, 14:35 |
|
возвращаемый тип данных в pipelined function
|
|||
---|---|---|---|
#18+
Roxen, Приведи пожалуйста пример такой функции. У меня тоже проблема, есть один запрос, который надо фильтровать сначала, а потом в разных разрезах, с разными группировками выводить. Типа сколько выездов сделала каждая бригада с такого-то по такое-то, или то же, но + с определёнными диагнозами. /это по фильтрам Потом сколько выездов сделали бригады подстанции - тоже с фильтрами. В общем я придумал вынести в PIPELINED функцию запрос. Там прописать фильтры, данные из которых буду передавать в процедуру, а возвращаться будет отфильтрованная таблица. И как раз этот результат уже буду группировать в разных разрезах и позах. Так и при любом изменении количества фильтров функцию подправил и всё ок. Но не хочу делать для каждой вьюшки свой тип чтобы не менять их при изменении вьюшки и пытаюсь сделать как раз %ROWTYPE но нифига не выходит... Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17.
Это тест, на котором я хочу опробовать... Выдаёт соответственно ошибку. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.01.2012, 14:39 |
|
возвращаемый тип данных в pipelined function
|
|||
---|---|---|---|
#18+
tru55, Ладно, погорячился. Просто меня тоже так послали вместо ответа. Сори. Лучше подскажи по теме. Ну и думаю про дбфы ты понял, просто постебаться решил ;) ... |
|||
:
Нравится:
Не нравится:
|
|||
13.01.2012, 14:43 |
|
возвращаемый тип данных в pipelined function
|
|||
---|---|---|---|
#18+
dmitryk1, хотеть не вредно. а проза жизни в том, что булки на деревьях не растут ... |
|||
:
Нравится:
Не нравится:
|
|||
13.01.2012, 14:45 |
|
возвращаемый тип данных в pipelined function
|
|||
---|---|---|---|
#18+
dmitryk1фильтровать сначала, а потом в разных разрезах, с разными группировками выводить. Для решения этой задачи существуют специально обученные инструменты имени [R]OLAP ... |
|||
:
Нравится:
Не нравится:
|
|||
13.01.2012, 14:48 |
|
возвращаемый тип данных в pipelined function
|
|||
---|---|---|---|
#18+
tru55применение dynamic SQL в общем случае ведет к потере производительностиАга, любимая мифо-страшилка от О дминов. Это фигня, по сравнению с сопровождаемостью. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.01.2012, 14:53 |
|
возвращаемый тип данных в pipelined function
|
|||
---|---|---|---|
#18+
Elictru55применение dynamic SQL в общем случае ведет к потере производительностиАга, любимая мифо-страшилка от О дминов. Это фигня, по сравнению с сопровождаемостью. Все от кривых рук. По-настоящему оторваться можно на EAV :) ... |
|||
:
Нравится:
Не нравится:
|
|||
13.01.2012, 14:54 |
|
возвращаемый тип данных в pipelined function
|
|||
---|---|---|---|
#18+
andrey_anonymousdmitryk1фильтровать сначала, а потом в разных разрезах, с разными группировками выводить. Для решения этой задачи существуют специально обученные инструменты имени [R]OLAP Ты в курсе сколько оно стоит? Или считаешь мне имеет смысл послать начальство посоветовав купить ентерпрайз? ... |
|||
:
Нравится:
Не нравится:
|
|||
13.01.2012, 14:57 |
|
|
start [/forum/topic.php?fid=52&tid=1882253]: |
0ms |
get settings: |
9ms |
get forum list: |
15ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
40ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
58ms |
get tp. blocked users: |
1ms |
others: | 258ms |
total: | 403ms |
0 / 0 |