|
возвращаемый тип данных в 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 |
|
возвращаемый тип данных в pipelined function
|
|||
---|---|---|---|
#18+
orawishdmitryk1, хотеть не вредно. а проза жизни в том, что булки на деревьях не растут Ну да. Полезный ответ. Спасибо. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.01.2012, 14:58 |
|
возвращаемый тип данных в pipelined function
|
|||
---|---|---|---|
#18+
dmitryk1Ты в курсе сколько оно стоит? Дмитрий, а Вы хотя бы приблизительно в курсе во что обходится работодателю содержать программиста, который уже сам запутался в собственной разработке? А в случае с "универсальной функцией" на DSQL это случится раньше чем можно предположить :) В этом аспекте разумное начальство нередко готово рассматривать вариант приобретения необходимого инструмента. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.01.2012, 15:01 |
|
возвращаемый тип данных в pipelined function
|
|||
---|---|---|---|
#18+
andrey_anonymous, Андрей, боюсь мы отклонились от темы. Если есть желание можете обсудить с моим руководством замену меня на ентерпрайз оракл и человека который будет там писать запросы. И обосновать что это дешевле и проще. А по теме что-то есть? ... |
|||
:
Нравится:
Не нравится:
|
|||
13.01.2012, 15:09 |
|
возвращаемый тип данных в pipelined function
|
|||
---|---|---|---|
#18+
dmitryk1orawishdmitryk1, хотеть не вредно. а проза жизни в том, что булки на деревьях не растут Ну да. Полезный ответ. Спасибо. на здоровье. авторНо не хочу делать для каждой вьюшки свой тип чтобы не менять их при изменении вьюшки и пытаюсь сделать как раз %ROWTYPE но нифига не выходит... почитайте документацию про pipelined, поймите, что такое pipelined и тогда (надеюсь) .. дойдёт ... |
|||
:
Нравится:
Не нравится:
|
|||
13.01.2012, 15:12 |
|
возвращаемый тип данных в pipelined function
|
|||
---|---|---|---|
#18+
dmitryk1А по теме что-то есть? По теме - pipelined не для Вас. Эта штука предполагает типизованный результат. Можете конечно почитать про типы AnyData, AnyDataSet, но - поверьте на слово - овчинка выделки не стоит. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.01.2012, 15:21 |
|
возвращаемый тип данных в pipelined function
|
|||
---|---|---|---|
#18+
orawish, Ну если бы вы читали то что я раньше написал, то увидели бы, что вопрос именно по ним. А точнее как pipelined функции использовать не статически созданный тип и его коллекцию а тип курсора используемого для выборки параметров. Чтобы я мог изменять вьюшку как хочу и это не требовало изменения функции или типа. Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17.
Кстати вы первый кто вспомнил про эти функции при разговоре на эту тему. Может вы и сможете закрыть вопрос и подсказать - как. Я так понимаю. топикстартер в лохматые ... какие там, эту проблему решил ещё до того как у него возникла новая хотелка :) Только вот найдётся ли он сейчас. А то может он тоже на олап перешёл уже давно. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.01.2012, 15:24 |
|
возвращаемый тип данных в pipelined function
|
|||
---|---|---|---|
#18+
andrey_anonymous, Я почему тут начал писать - прочитал в первом посте: Есть несколько pipelined functions (show_table1, show_table2 и т д.), которые возвращают тип TYPE CP_T IS TABLE OF CP_CUR%ROWTYPE где CP_CUR - это курсор содержащий запрос к определенной таблице То есть моя проблема у человека уже решена. Ну а возможность вместо изменения десятков запросов путём вставки в каждый Код: sql 1.
при очередном всплеске активности заинтересованных лиц, добавить это в одну PIPELINED функцию многое перевешивает. Хотя если вы предложите другой работающий вариант не требующий больших деньгозатрат (на данный момент это нереально) я с удовольствием за него ухвачусь! ... |
|||
:
Нравится:
Не нравится:
|
|||
13.01.2012, 15:30 |
|
возвращаемый тип данных в pipelined function
|
|||
---|---|---|---|
#18+
dmitryk1orawish, Ну если бы вы читали то что я раньше написал, то увидели бы, что вопрос именно по ним. А точнее как pipelined функции использовать не статически созданный тип и его коллекцию а тип курсора используемого для выборки параметров. Чтобы я мог изменять вьюшку как хочу и это не требовало изменения функции или типа. Код: sql 1.
Кстати вы первый кто вспомнил про эти функции при разговоре на эту тему. Может вы и сможете закрыть вопрос и подсказать - как. Я так понимаю. топикстартер в лохматые ... какие там, эту проблему решил ещё до того как у него возникла новая хотелка :) Только вот найдётся ли он сейчас. А то может он тоже на олап перешёл уже давно. постом выше - andrey_anonymous - все уже сказал. как трамваю нужны рельсы, так конвейеру нужен предопределенный (до компиляции спецификации программной единицы с той функцией) sql-тип. можно создать тип с избыточным набором столбцов или заниматься распаковкой данных (упакованных в том пайплайне в недрах атрибутов того типа), но переопределять тип нельзя ... |
|||
:
Нравится:
Не нравится:
|
|||
13.01.2012, 15:40 |
|
возвращаемый тип данных в pipelined function
|
|||
---|---|---|---|
#18+
dmitryk1Ну если бы вы читали то что я раньше написал, то увидели бы, что вопрос именно по ним. А точнее как pipelined функции использовать не статически созданный тип и его коллекцию а тип курсора используемого для выборки параметров.Невменяемы клиент на ручнике. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.01.2012, 15:46 |
|
возвращаемый тип данных в pipelined function
|
|||
---|---|---|---|
#18+
orawish, Кхм... Ещё раз. Человек, в первом посте сказал что у него это работает и он хочет усложнить. Не вижу причин ему не верить. Ваши аргументы понимаю, однако надеюсь всё-таки на что-то подкреплённое ссылками, хотя бы. Со статичным типом будет работать, это написано во многих источниках. Где написано что не будет работать с динамическим? Хотя это и не динамический, это копия определённого в базе типа. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.01.2012, 15:49 |
|
возвращаемый тип данных в pipelined function
|
|||
---|---|---|---|
#18+
dmitryk1, А возвращять XMLType не проще? И овцы сыты и волки целы. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.01.2012, 15:51 |
|
возвращаемый тип данных в pipelined function
|
|||
---|---|---|---|
#18+
dmitryk1orawish, Кхм... Ещё раз. Человек, в первом посте сказал что у него это работает и он хочет усложнить. Не вижу причин ему не верить. Ваши аргументы понимаю, однако надеюсь всё-таки на что-то подкреплённое ссылками, хотя бы. Со статичным типом будет работать, это написано во многих источниках. Где написано что не будет работать с динамическим? Хотя это и не динамический, это копия определённого в базе типа. где, где. дык в эскуэльреференсе и написано. черным по белому ... |
|||
:
Нравится:
Не нравится:
|
|||
13.01.2012, 16:02 |
|
возвращаемый тип данных в pipelined function
|
|||
---|---|---|---|
#18+
Сергей Арсеньев, Я пробовал Код: sql 1.
. В селект возвращались строки одной колонки, типа Код: xml 1. 2.
Однако как осуществлять последующую группировку с выводом не хмля в результат, а обычного результата селекта? Парсить вручную явно не вариант, да и преобразования показались мне тяжёлыми. Может есть пара примеров ? В принципе вполне пристойный вариант бы получился, я думаю. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.01.2012, 16:02 |
|
возвращаемый тип данных в pipelined function
|
|||
---|---|---|---|
#18+
orawish, Может я неправильно перевёл оттуда: [quote RETURN Data Type ]You can use SQL data types ANYTYPE, ANYDATA, and ANYDATASET to dynamically encapsulate and access type descriptions, data instances, and sets of data instances of any other SQL type, including object and collection types. You can also use these types to create unnamed types, including anonymous collection types. For information about these types, see Oracle Database PL/SQL Packages and Types Reference.[/quote] Но насколько позволяет моё знание иностранных языков, здесь написано что возвращать динамические типы вполне возможно... За ссылку спасибо. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.01.2012, 16:09 |
|
возвращаемый тип данных в pipelined function
|
|||
---|---|---|---|
#18+
dmitryk1, xmlsequence нынче не в моде, объявлен deprecated Да и можно вываливать XML клиенту, а он его XLST преобразованием в отчет. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.01.2012, 16:09 |
|
возвращаемый тип данных в pipelined function
|
|||
---|---|---|---|
#18+
Сергей Арсеньев, Это получится группировка на клиенте. Боюсь у нас клиенты этого не потянут :( И опять же переезд части логики из базы на аппликейшин сервер или на клиента, что тоже распыление логики которого очень хочется избежать, и получить унифицированный подход, то есть, в данном случае, потребовалось изменить что-то - меняем в одном месте (в базе) понадобилось добавить новый отчёт или удалить - то же. Попробую поискать про преобразование хмл и дальнейшую работу как с таблицей. Спасибо за помощь. От примеров бы, всё-таки не отказался ;) ... |
|||
:
Нравится:
Не нравится:
|
|||
13.01.2012, 16:20 |
|
возвращаемый тип данных в pipelined function
|
|||
---|---|---|---|
#18+
dmitryk1возвращать динамические типы вполне возможно... Не човчем. Я уже указывал что можно почитать про эти типы, но - повторюсь - овчинка не стоит выделки. Предельным случаем подобной "универсальности", повторюсь, является EAV (известная так же под ником "модель Тенцера"). Надо ли Вам оно... В конечном итоге запросы оказываются тесно связаны с текущей версией приложения. При доработках править приходится не столько условия отбора, сколько состав и типы данных, возвращаемые запросом. А тут как раз и случается прогнозируемый нежданчик - новые структуры обычно нуждаются в соответствующей логике на стороне клиента (как минимум - в "презентационной"), поэтому затраты на "поправить текст запроса" на круг не так уж велики в сравнении с "поправить формы/кнопки/логику приложения". ...что до "поправить в одной процедуре" - за годы пришел к выводу, что это утопия. Вернее, случаи, когда это актуально, исчисляются долями процента среди общего объема задач по сопровождению кода. И изобретать тут лучше не "единую универсальную процедуру", коей, собственно, и является sql-интерфейс, а процесс генерации "типового" SQL-кода по шаблонам. Поправили шаблон - сгенерировали потребный SQL. Собственно, примерно так и работают крупные аппликухи вроде того же зибеля - разраб определяет "высокоуровневую" структуру данных, рисует формочку/логику, а уж ddl к таблицам и sql генерируется автомагически. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.01.2012, 16:46 |
|
возвращаемый тип данных в pipelined function
|
|||
---|---|---|---|
#18+
andrey_anonymous, Про модель Тенцера буду читать. А про набор запросов сгенерированных по условию... Как то даже не задумывался. Спасибо за идею. Хотя как-то она меня смущает. Но буду думать и в этом направлении. Насчёт клиентской части я не особо волнуюсь потому что это именно отчёты, то есть дальнейшая обработка на клиенте - это перечисление столбцов, отображение хтмл страницы и может дополнительная клиентская сортировка\фильтрация, но это сильно опционально. И усложнение в обшем то будет идти со стороны базы и серверной логики - выдача всё большего числа отчётов по разным как предопределённым, возможно даже предыдущими запросами, так и введённым критериям. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.01.2012, 18:00 |
|
возвращаемый тип данных в pipelined function
|
|||
---|---|---|---|
#18+
dmitryk1orawish, Может я неправильно перевёл оттуда: [quot RETURN Data Type ]You can use SQL data types ANYTYPE, ANYDATA, and ANYDATASET to dynamically encapsulate and access type descriptions, data instances, and sets of data instances of any other SQL type, including object and collection types. You can also use these types to create unnamed types, including anonymous collection types. For information about these types, see Oracle Database PL/SQL Packages and Types Reference. Но насколько позволяет моё знание иностранных языков, здесь написано что возвращать динамические типы вполне возможно... За ссылку спасибо.[/quot] а вот и нет. заковыка в том, что data types ANYTYPE, ANYDATA, and ANYDATASET - это имена собственные (т.е. не любой тип а конкретный сисовский тип, с гордым названием "Любой" и т.д.) ... |
|||
:
Нравится:
Не нравится:
|
|||
13.01.2012, 18:19 |
|
возвращаемый тип данных в pipelined function
|
|||
---|---|---|---|
#18+
orawish, Не знаете почему я не люблю sql и oracle? я до этой темы задал вопрос вот тут может ещё какие мысли появятся ну и народ там тоже грамотный собрался... ... |
|||
:
Нравится:
Не нравится:
|
|||
13.01.2012, 18:55 |
|
возвращаемый тип данных в pipelined function
|
|||
---|---|---|---|
#18+
..и Вам там ответили: МОЖНО. Называется Код: plsql 1.
Частные случаи: Код: plsql 1.
Но вместо того чтобы изучить новые пассатижи - кое-кто начал канючить в стиле "...гранаты у него не той системы" (с) ... |
|||
:
Нравится:
Не нравится:
|
|||
13.01.2012, 19:02 |
|
возвращаемый тип данных в pipelined function
|
|||
---|---|---|---|
#18+
dmitryk1orawish, Не знаете почему я не люблю sql и oracle? я до этой темы задал вопрос вот тут может ещё какие мысли появятся ну и народ там тоже грамотный собрался... почему не любите - смутно догадываюсь (элементарно, не владеете основами) соседнюю тему посетил. извините, но имхо та тема не более чем мутный поток сознания, которое не знает чего хочет. кому нужен отчет - тот делает отчет. в инструментах соответствующих обычно поддерживаются параметры. при чем тут вью да и база данных, вообще? видно и инструментом, в котором вы отчеты лабаете, тоже не шибко владеете ... |
|||
:
Нравится:
Не нравится:
|
|||
13.01.2012, 19:10 |
|
возвращаемый тип данных в pipelined function
|
|||
---|---|---|---|
#18+
orawish, Ну да, не владею. не люблю инструменты которые подразумевают долгое и муторное написание дублирующегося кода там, где любой другой инструмент обходится несколькими строками. Групинсет - там есть пример нескольких идущих подряд запросов. типа такого: Код: plsql 1. 2. 3. 4. 5. 6. 7.
Представьте что они объединены и между ними прослойки названий подгруппы. Я такое смогу реализовать с помощью групинсетс? Насколько я про него прочитал и попробовал - нет. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.01.2012, 19:19 |
|
возвращаемый тип данных в pipelined function
|
|||
---|---|---|---|
#18+
dmitryk1где любой другой инструмент обходится несколькими строками Вам нужен "любой другой инструмент". Если вопрос в цене, то возьмите вместо Oracle MySQL. То, что Вы указали пишется на простом SQL. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.01.2012, 19:25 |
|
возвращаемый тип данных в pipelined function
|
|||
---|---|---|---|
#18+
Roxen, Вся проблема универсальности заключается в необходимости описания УНИВЕРСАЛЬНОГО (для любой таблицы) типа который возвращает pipilined. Проблема решается по дедовски в обход путём созданием спецификации пакета (например), а в нём уже - типа под динамически назначаемую таблицу (выступающую в нашем случае как параметр) Сначала создаем эту спецификацию пакета: Код: plsql 1. 2. 3.
А потом пред вызовом PIPELINED функции переопределяем его: Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16.
Сама функция выглядит вот так, например: Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27.
... |
|||
:
Нравится:
Не нравится:
|
|||
17.07.2019, 10:55 |
|
возвращаемый тип данных в pipelined function
|
|||
---|---|---|---|
#18+
SQLdnaпред вызовом PIPELINED функции переопределяем егоТут главное, не пускать других в БД, пока такие гении в БД продакшн есть. ... |
|||
:
Нравится:
Не нравится:
|
|||
17.07.2019, 11:06 |
|
|
start [/forum/topic.php?all=1&fid=52&tid=1882253]: |
0ms |
get settings: |
10ms |
get forum list: |
13ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
39ms |
get topic data: |
9ms |
get forum data: |
3ms |
get page messages: |
71ms |
get tp. blocked users: |
1ms |
others: | 249ms |
total: | 403ms |
0 / 0 |