|
Что есть в oracle и нет в postgresql?
|
|||
---|---|---|---|
#18+
envИ правила именования ключей таких таблиц должны быть дюже жёсткими, а вдруг соседняя процедура в той же сессии запишет своё значение с этим ключом. А в пакете соседняя процедура не может записать значение в ту же пакетную переменную? Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
22.09.2020, 15:48 |
|
Что есть в oracle и нет в postgresql?
|
|||
---|---|---|---|
#18+
Симонов Денис Бумбараш, пока не попробовал не поймёшь. Что удобней ориентироваться среди 100500 процедур/функций в плоском списке или сгруппированным по пространству имён? да я знаю, что такое пакеты что удобней при маленьком изменении перекомпилировать одну процедуру или десятиэтажный пакет? работал с ораклом и работаю много лет. Но также работал и со многими другими базами, где нет никаких пакетов и всё замечательно. Может пакеты это и неплохо. Но когда это продают как киллер фичу и задвигают телеги про то, что они надежны, потому что министерством обороны сша разработаны. Это лол ... |
|||
:
Нравится:
Не нравится:
|
|||
22.09.2020, 16:14 |
|
Что есть в oracle и нет в postgresql?
|
|||
---|---|---|---|
#18+
пакеты это естественно не та фича (по мне это вообще копеешная фича), за которую надо платить 10ки тыщ долларов. В контексте вопроса ТС пакеты играют лишь ту роль, что да, они зашились на пакеты и им будет из-за этого труднее мигрировать. То есть сами усугубили себе вендор лок из-за пакетов. А это и есть минус пакетов ... |
|||
:
Нравится:
Не нравится:
|
|||
22.09.2020, 16:18 |
|
Что есть в oracle и нет в postgresql?
|
|||
---|---|---|---|
#18+
Dimitry Sibiryakov, В пакете обычно не смешивают процедуры, не объединённые общей бизнес-логикой или утилитарным функционалом. А вынесенный в отдельную таблицу ключ может использовать процедура, никак не связанная с логикой данного модуля. В вашем варианте, вызывая любую "чужую" процедуру, надо проверять, какие ключи она затрагивает. Бумбараш, а это и не киллер-фича. Просто удобство. Особенно, когда есть с чем сравнивать. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.09.2020, 17:04 |
|
Что есть в oracle и нет в postgresql?
|
|||
---|---|---|---|
#18+
Бумбараш То есть сами усугубили себе вендор лок из-за пакетов Согласен. Надо сразу писать ANSI-совместимый код, вынося всю логику на уровень приложений. Тогда подойдёт в общем-то любая СУБД, вплоть до использования файлов. Никаких процедур - это вендор лок в любом случае. Никаких управлений уровнями изоляции и блокировками. Никаких типов данных, кроме наиболее примитивных. Никакого функционала с агрегатными и тем более оконными функциями. Только CRUD. Вот тогда не будет проблем при миграции, стопудово! А, забыл. Никакого BI - это тоже же вендор лок. Только свой велосипед на чистом SELECT. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.09.2020, 17:10 |
|
Что есть в oracle и нет в postgresql?
|
|||
---|---|---|---|
#18+
Бумбараш пакеты это естественно не та фича (по мне это вообще копеешная фича), за которую надо платить 10ки тыщ долларов. В контексте вопроса ТС пакеты играют лишь ту роль, что да, они зашились на пакеты и им будет из-за этого труднее мигрировать. То есть сами усугубили себе вендор лок из-за пакетов. А это и есть минус пакетов Можно мигрировать на IBM DB2. Там тоже есть PL/SQL и проблем с миграцией PL/SQL будет намного меньше! * * * Но самое ужасное в Oracle - это невозможность делать SELECT из процедуры, как в MS SQL. Отсутствие такой фичи показывает полное убожество дорогущей базы Oracle. :-( А вот PostgreSQL имеет в своем арсенале такую "киллер фичу"? Можно в PostgreSQL делать SELECT из процедуры? Или он такой же убогий, как Oracle? :-) ... |
|||
:
Нравится:
Не нравится:
|
|||
22.09.2020, 17:49 |
|
Что есть в oracle и нет в postgresql?
|
|||
---|---|---|---|
#18+
Валерий Юринский Но самое ужасное в Oracle - это невозможность делать SELECT из процедуры, как в MS SQL. Вы имеете в виду select внутри процедуры, который возвращает DS при вызове этой процедуры? или select * from procedure ? второго в MS SQL нет ... |
|||
:
Нравится:
Не нравится:
|
|||
22.09.2020, 17:58 |
|
Что есть в oracle и нет в postgresql?
|
|||
---|---|---|---|
#18+
msLex, Первое ... |
|||
:
Нравится:
Не нравится:
|
|||
22.09.2020, 18:04 |
|
Что есть в oracle и нет в postgresql?
|
|||
---|---|---|---|
#18+
envА вынесенный в отдельную таблицу ключ может использовать процедура, никак не связанная с логикой данного модуля. Э-э-э... Не понял. Таблица в схеме, процедура в схеме, процедура обращается к таблице по имени схемы, прав на таблицу "наружу" никому не выдано. Какая "никак не связанная с логикой" процедура сможет её использовать? Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
22.09.2020, 19:18 |
|
Что есть в oracle и нет в postgresql?
|
|||
---|---|---|---|
#18+
msLex Валерий Юринский Но самое ужасное в Oracle - это невозможность делать SELECT из процедуры, как в MS SQL. Вы имеете в виду select внутри процедуры, который возвращает DS при вызове этой процедуры? или select * from procedure ? второго в MS SQL нет как это нету? Код: sql 1.
:) ... |
|||
:
Нравится:
Не нравится:
|
|||
22.09.2020, 20:46 |
|
Что есть в oracle и нет в postgresql?
|
|||
---|---|---|---|
#18+
Dimitry Sibiryakov, Любая. В той же схеме, но выполняющая другой кусок бизнес-логики. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.09.2020, 10:24 |
|
Что есть в oracle и нет в postgresql?
|
|||
---|---|---|---|
#18+
envЛюбая. В той же схеме, но выполняющая другой кусок бизнес-логики. И чем это отличается от случая "любая функция в том же пакете, но выполняющая другой кусок бизнес-логики"? Возможно тем, что в этом случае шишки будут сыпать на разработчика, который поместил в пакет левую функцию, а не говорить, что "пакеты плохие, не обеспечивают достаточного уровня инкапсуляции"?.. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
23.09.2020, 12:41 |
|
Что есть в oracle и нет в postgresql?
|
|||
---|---|---|---|
#18+
Dimitry Sibiryakov, Разнесение логики по модулям (пакетам) выполнить проще. С меньшей вероятностью ошибки, нежели выискивать, кто из разработчиков в своей процедуре решил использовать тот же ключ из таблички или ошибся буковкой. Найти заполнение переменной в одном пакете проще, нежели перелопатить сотню процедур одной схемы, особенно если изменение по ключу происходит не напрямую, а во вложенном вызове. Я исхожу из работы над кодом команды, состоящей более чем из одного разработчика. Соглашение "один пакет - одна задача" выполнить гораздо проще, чем вести где-то взаимосвязь отдельных процедур, выполняющих связанный набор процессов. Проще отслеживать изменения, проще решать конфликты, проще ограничивать объём изменений. Проще оценивать, что затронут изменения. Соглашусь, что точечные процедуры в отдельных схемах будут удобнее, если на базе нет логики и она вынесена на уровень приложения. Для процедур, реализующих CRUD, так даже удобнее - можно нагенерить обвязку по отдельной схеме. Но это просто другой класс задач. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.09.2020, 13:05 |
|
Что есть в oracle и нет в postgresql?
|
|||
---|---|---|---|
#18+
envНайти заполнение переменной в одном пакете проще, нежели перелопатить сотню процедур одной схемы, особенно если изменение по ключу происходит не напрямую, а во вложенном вызове. Перелопатить сотню процедур в пакете проще, чем перелопатить сотню процедур в схеме? Или просто у Вас не укладывается в голове существование схемы, созданной под три процедуры?.. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
23.09.2020, 13:15 |
|
Что есть в oracle и нет в postgresql?
|
|||
---|---|---|---|
#18+
Dimitry Sibiryakov envЛюбая. В той же схеме, но выполняющая другой кусок бизнес-логики. И чем это отличается от случая "любая функция в том же пакете, но выполняющая другой кусок бизнес-логики"? Возможно тем, что в этом случае шишки будут сыпать на разработчика, который поместил в пакет левую функцию, а не говорить, что "пакеты плохие, не обеспечивают достаточного уровня инкапсуляции"?.. всем отличается. в оракле у тебя в package 3 процедуры торчащих наружу, в его body 100 процедур закрытых от внешнего мира а в чем инкапсуляция 100 процедур mssql сваленных в одну схему ? ... |
|||
:
Нравится:
Не нравится:
|
|||
23.09.2020, 13:22 |
|
Что есть в oracle и нет в postgresql?
|
|||
---|---|---|---|
#18+
H5N1а в чем инкапсуляция 100 процедур mssql сваленных в одну схему ? В том, что "торчит наружу" только три, а остальные пользователю видеть и вызывать запрещено?.. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
23.09.2020, 13:29 |
|
Что есть в oracle и нет в postgresql?
|
|||
---|---|---|---|
#18+
Dimitry Sibiryakov H5N1а в чем инкапсуляция 100 процедур mssql сваленных в одну схему ? В том, что "торчит наружу" только три, а остальные пользователю видеть и вызывать запрещено?.. действительно. не подумал. зачем девелоперу видеть код, многие вещи можно и угадать. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.09.2020, 13:57 |
|
Что есть в oracle и нет в postgresql?
|
|||
---|---|---|---|
#18+
H5N1зачем девелоперу видеть код, многие вещи можно и угадать. Конечно. Особенно хорошо с угадыванием помогают намёки документации. Хотя о чём это я, пользователю же можно просто вывалить заголовок пакета, а дальше он и сам разберётся, не маленький. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
23.09.2020, 14:06 |
|
Что есть в oracle и нет в postgresql?
|
|||
---|---|---|---|
#18+
Dimitry Sibiryakov, Перелопатить сотню процедур в пакете Сто процедур в пакете в большинстве случаев не требуется, т.к. это инкапсуляция логики отдельного процесса или утилитарного функционала, который можно и нужно декомпозировать на отдельные составляющие. Опережая вопрос, в этом случае вряд ли будет нужна некая общая переменная для всех процедур. А если такая нужна - выносится в пакет с глобальными переменными уровня сессии, где можно закрыть её через get/set-методы с проверкой вызывающего. Или просто у Вас не укладывается в голове существование схемы, созданной под три процедур Нет, это Вам похоже очень сложно представить себе работу с пакетами, декомпозицию и инкапсуляцию логики. Лично я уже наелся при работе с sql server варианта "схема под три процедуры", спасибо, больше не хочется. Особенно, когда начинается рефакторинг общих вызовов с созданием новых схем. В том, что "торчит наружу" только три, а остальные пользователю видеть и вызывать запрещено? Пользователю (именно пользователю, т.е. приложению или вызывающему клиенту) не нужно знать код процедур. Ему достаточно знать контракт вызова в виде их сигнатуры, а не код реализации каждого метода. Не говоря уж о том, что у пользователя в принципе не должно быть возможности вызвать служебные методы, которые не предназначены для внешнего использования. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.09.2020, 15:07 |
|
Что есть в oracle и нет в postgresql?
|
|||
---|---|---|---|
#18+
В обратную сторону - у postgresql есть замечательная штука с объявлением окна, общего для нескольких функций. Прям хочется такое же. Честно говоря, не знаю, насколько сейчас хорошо в postgesql с секционированием, что можно, какие поддерживаются способы и сочетания. Может кто подсказать? ... |
|||
:
Нравится:
Не нравится:
|
|||
23.09.2020, 15:14 |
|
Что есть в oracle и нет в postgresql?
|
|||
---|---|---|---|
#18+
Dimitry Sibiryakov Конечно. Особенно хорошо с угадыванием помогают намёки документации. документация ? что за легаси. только телеграмм бот ! Dimitry Sibiryakov Хотя о чём это я, пользователю же можно просто вывалить заголовок пакета, а дальше он и сам разберётся, не маленький. о чем ты думаю ты и сам уже ответить не сможешь. чего девелопер должен делать, если ему нужно расширить "package" 101 процедурой я так и не понял. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.09.2020, 16:18 |
|
Что есть в oracle и нет в postgresql?
|
|||
---|---|---|---|
#18+
env Нет, это Вам похоже очень сложно представить себе работу с пакетами, декомпозицию и инкапсуляцию логики. Вы, похоже, недавно знакомы с Димой. Наверное, Вы видели такой эффект: ребёнок пытается перепрыгнуть через скамейку, недопрыгивает, падает и кричит: "Плохая скамейка!" Вот у Димы примерно такие же взаимоотношения с Oracle-ом. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.09.2020, 17:44 |
|
Что есть в oracle и нет в postgresql?
|
|||
---|---|---|---|
#18+
softwarerВот у Димы примерно такие же взаимоотношения с Oracle-ом. Хммм... Переход на личности... В ФИДО это был бы верный признак, что дискуссия слита и её можно пристрелить. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
23.09.2020, 17:48 |
|
Что есть в oracle и нет в postgresql?
|
|||
---|---|---|---|
#18+
Dimitry Sibiryakov, Расчехляйте плюсомёт, что уж там ... |
|||
:
Нравится:
Не нравится:
|
|||
23.09.2020, 17:50 |
|
|
start [/forum/topic.php?fid=35&msg=40001649&tid=1552157]: |
0ms |
get settings: |
3ms |
get forum list: |
5ms |
check forum access: |
1ms |
check topic access: |
1ms |
track hit: |
30ms |
get topic data: |
2ms |
get forum data: |
1ms |
get page messages: |
451ms |
get tp. blocked users: |
0ms |
others: | 6ms |
total: | 500ms |
0 / 0 |