Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Сравнение СУБД Новый топик    Ответить
Топик располагается на нескольких страницах: Ctrl  назад   1 2 [3] 4 5 6   вперед  Ctrl      все
 Re: Что есть в oracle и нет в postgresql?  [new]
Dimitry Sibiryakov
Member

Откуда:
Сообщений: 53394

env
И правила именования ключей таких таблиц должны быть дюже жёсткими, а вдруг соседняя
процедура в той же сессии запишет своё значение с этим ключом.

А в пакете соседняя процедура не может записать значение в ту же пакетную переменную?

Posted via ActualForum NNTP Server 1.5

22 сен 20, 15:48    [22201984]     Ответить | Цитировать Сообщить модератору
 Re: Что есть в oracle и нет в postgresql?  [new]
Бумбараш
Member

Откуда: никем не победимая, самая любимая
Сообщений: 2913
Симонов Денис
Бумбараш,

пока не попробовал не поймёшь. Что удобней ориентироваться среди 100500 процедур/функций в плоском списке или сгруппированным по пространству имён?

да я знаю, что такое пакеты

что удобней при маленьком изменении перекомпилировать одну процедуру или десятиэтажный пакет?

работал с ораклом и работаю много лет. Но также работал и со многими другими базами, где нет никаких пакетов и всё замечательно.

Может пакеты это и неплохо. Но когда это продают как киллер фичу и задвигают телеги про то, что они надежны, потому что министерством обороны сша разработаны. Это лол
22 сен 20, 16:14    [22202001]     Ответить | Цитировать Сообщить модератору
 Re: Что есть в oracle и нет в postgresql?  [new]
Бумбараш
Member

Откуда: никем не победимая, самая любимая
Сообщений: 2913
пакеты это естественно не та фича (по мне это вообще копеешная фича), за которую надо платить 10ки тыщ долларов.

В контексте вопроса ТС пакеты играют лишь ту роль, что да, они зашились на пакеты и им будет из-за этого труднее мигрировать.
То есть сами усугубили себе вендор лок из-за пакетов. А это и есть минус пакетов
22 сен 20, 16:18    [22202006]     Ответить | Цитировать Сообщить модератору
 Re: Что есть в oracle и нет в postgresql?  [new]
env
Member

Откуда: Россия, Москва
Сообщений: 7492
Dimitry Sibiryakov,

В пакете обычно не смешивают процедуры, не объединённые общей бизнес-логикой или утилитарным функционалом. А вынесенный в отдельную таблицу ключ может использовать процедура, никак не связанная с логикой данного модуля. В вашем варианте, вызывая любую "чужую" процедуру, надо проверять, какие ключи она затрагивает.

Бумбараш,

а это и не киллер-фича. Просто удобство. Особенно, когда есть с чем сравнивать.
22 сен 20, 17:04    [22202055]     Ответить | Цитировать Сообщить модератору
 Re: Что есть в oracle и нет в postgresql?  [new]
env
Member

Откуда: Россия, Москва
Сообщений: 7492
Бумбараш
То есть сами усугубили себе вендор лок из-за пакетов


Согласен. Надо сразу писать ANSI-совместимый код, вынося всю логику на уровень приложений. Тогда подойдёт в общем-то любая СУБД, вплоть до использования файлов. Никаких процедур - это вендор лок в любом случае. Никаких управлений уровнями изоляции и блокировками. Никаких типов данных, кроме наиболее примитивных. Никакого функционала с агрегатными и тем более оконными функциями. Только CRUD.

Вот тогда не будет проблем при миграции, стопудово!


А, забыл. Никакого BI - это тоже же вендор лок. Только свой велосипед на чистом SELECT.

Сообщение было отредактировано: 22 сен 20, 17:07
22 сен 20, 17:10    [22202057]     Ответить | Цитировать Сообщить модератору
 Re: Что есть в oracle и нет в postgresql?  [new]
Валерий Юринский
Member

Откуда: Москва, "ФОРС Дистрибуция"
Сообщений: 1282
Бумбараш
пакеты это естественно не та фича (по мне это вообще копеешная фича), за которую надо платить 10ки тыщ долларов.

В контексте вопроса ТС пакеты играют лишь ту роль, что да, они зашились на пакеты и им будет из-за этого труднее мигрировать.
То есть сами усугубили себе вендор лок из-за пакетов. А это и есть минус пакетов

Можно мигрировать на IBM DB2.
Там тоже есть PL/SQL и проблем с миграцией PL/SQL будет намного меньше!

* * *

Но самое ужасное в Oracle - это невозможность делать SELECT из процедуры, как в MS SQL.
Отсутствие такой фичи показывает полное убожество дорогущей базы Oracle. :-(

А вот PostgreSQL имеет в своем арсенале такую "киллер фичу"?
Можно в PostgreSQL делать SELECT из процедуры?
Или он такой же убогий, как Oracle?

:-)
22 сен 20, 17:49    [22202080]     Ответить | Цитировать Сообщить модератору
 Re: Что есть в oracle и нет в postgresql?  [new]
msLex
Member

Откуда:
Сообщений: 9011
Валерий Юринский
Но самое ужасное в Oracle - это невозможность делать SELECT из процедуры, как в MS SQL.


Вы имеете в виду select внутри процедуры, который возвращает DS при вызове этой процедуры?
или select * from procedure ?

второго в MS SQL нет
22 сен 20, 17:58    [22202084]     Ответить | Цитировать Сообщить модератору
 Re: Что есть в oracle и нет в postgresql?  [new]
env
Member

Откуда: Россия, Москва
Сообщений: 7492
msLex,

Первое
22 сен 20, 18:04    [22202087]     Ответить | Цитировать Сообщить модератору
 Re: Что есть в oracle и нет в postgresql?  [new]
Dimitry Sibiryakov
Member

Откуда:
Сообщений: 53394

env
А вынесенный в отдельную таблицу ключ может использовать процедура, никак не связанная с
логикой данного модуля.

Э-э-э... Не понял. Таблица в схеме, процедура в схеме, процедура обращается к таблице по
имени схемы, прав на таблицу "наружу" никому не выдано. Какая "никак не связанная с
логикой" процедура сможет её использовать?

Posted via ActualForum NNTP Server 1.5

22 сен 20, 19:18    [22202130]     Ответить | Цитировать Сообщить модератору
 Re: Что есть в oracle и нет в postgresql?  [new]
andy st
Member

Откуда:
Сообщений: 820
msLex
Валерий Юринский
Но самое ужасное в Oracle - это невозможность делать SELECT из процедуры, как в MS SQL.


Вы имеете в виду select внутри процедуры, который возвращает DS при вызове этой процедуры?
или select * from procedure ?

второго в MS SQL нет

как это нету?
select * from OPENQUERY ([loopback],'exec sys.sp_databases') where database_name like 'm%'

:)
22 сен 20, 20:46    [22202173]     Ответить | Цитировать Сообщить модератору
 Re: Что есть в oracle и нет в postgresql?  [new]
env
Member

Откуда: Россия, Москва
Сообщений: 7492
Dimitry Sibiryakov,

Любая. В той же схеме, но выполняющая другой кусок бизнес-логики.
23 сен 20, 10:24    [22202384]     Ответить | Цитировать Сообщить модератору
 Re: Что есть в oracle и нет в postgresql?  [new]
Dimitry Sibiryakov
Member

Откуда:
Сообщений: 53394

env
Любая. В той же схеме, но выполняющая другой кусок бизнес-логики.

И чем это отличается от случая "любая функция в том же пакете, но выполняющая другой кусок
бизнес-логики"? Возможно тем, что в этом случае шишки будут сыпать на разработчика,
который поместил в пакет левую функцию, а не говорить, что "пакеты плохие, не обеспечивают
достаточного уровня инкапсуляции"?..

Posted via ActualForum NNTP Server 1.5

23 сен 20, 12:41    [22202548]     Ответить | Цитировать Сообщить модератору
 Re: Что есть в oracle и нет в postgresql?  [new]
env
Member

Откуда: Россия, Москва
Сообщений: 7492
Dimitry Sibiryakov,

Разнесение логики по модулям (пакетам) выполнить проще. С меньшей вероятностью ошибки, нежели выискивать, кто из разработчиков в своей процедуре решил использовать тот же ключ из таблички или ошибся буковкой.

Найти заполнение переменной в одном пакете проще, нежели перелопатить сотню процедур одной схемы, особенно если изменение по ключу происходит не напрямую, а во вложенном вызове.

Я исхожу из работы над кодом команды, состоящей более чем из одного разработчика. Соглашение "один пакет - одна задача" выполнить гораздо проще, чем вести где-то взаимосвязь отдельных процедур, выполняющих связанный набор процессов. Проще отслеживать изменения, проще решать конфликты, проще ограничивать объём изменений. Проще оценивать, что затронут изменения.

Соглашусь, что точечные процедуры в отдельных схемах будут удобнее, если на базе нет логики и она вынесена на уровень приложения. Для процедур, реализующих CRUD, так даже удобнее - можно нагенерить обвязку по отдельной схеме. Но это просто другой класс задач.
23 сен 20, 13:05    [22202570]     Ответить | Цитировать Сообщить модератору
 Re: Что есть в oracle и нет в postgresql?  [new]
Dimitry Sibiryakov
Member

Откуда:
Сообщений: 53394

env
Найти заполнение переменной в одном пакете проще, нежели перелопатить сотню процедур одной
схемы, особенно если изменение по ключу происходит не напрямую, а во вложенном вызове.

Перелопатить сотню процедур в пакете проще, чем перелопатить сотню процедур в схеме? Или
просто у Вас не укладывается в голове существование схемы, созданной под три процедуры?..

Posted via ActualForum NNTP Server 1.5

23 сен 20, 13:15    [22202586]     Ответить | Цитировать Сообщить модератору
 Re: Что есть в oracle и нет в postgresql?  [new]
H5N1
Member

Откуда: Yo.! из "Сравнения субд"
Сообщений: 515
Dimitry Sibiryakov

env
Любая. В той же схеме, но выполняющая другой кусок бизнес-логики.

И чем это отличается от случая "любая функция в том же пакете, но выполняющая другой кусок
бизнес-логики"? Возможно тем, что в этом случае шишки будут сыпать на разработчика,
который поместил в пакет левую функцию, а не говорить, что "пакеты плохие, не обеспечивают
достаточного уровня инкапсуляции"?..

всем отличается. в оракле у тебя в package 3 процедуры торчащих наружу, в его body 100 процедур закрытых от внешнего мира
а в чем инкапсуляция 100 процедур mssql сваленных в одну схему ?
23 сен 20, 13:22    [22202602]     Ответить | Цитировать Сообщить модератору
 Re: Что есть в oracle и нет в postgresql?  [new]
Dimitry Sibiryakov
Member

Откуда:
Сообщений: 53394

H5N1
а в чем инкапсуляция 100 процедур mssql сваленных в одну схему ?

В том, что "торчит наружу" только три, а остальные пользователю видеть и вызывать запрещено?..

Posted via ActualForum NNTP Server 1.5

23 сен 20, 13:29    [22202617]     Ответить | Цитировать Сообщить модератору
 Re: Что есть в oracle и нет в postgresql?  [new]
H5N1
Member

Откуда: Yo.! из "Сравнения субд"
Сообщений: 515
Dimitry Sibiryakov

H5N1
а в чем инкапсуляция 100 процедур mssql сваленных в одну схему ?

В том, что "торчит наружу" только три, а остальные пользователю видеть и вызывать запрещено?..

действительно. не подумал. зачем девелоперу видеть код, многие вещи можно и угадать.
23 сен 20, 13:57    [22202655]     Ответить | Цитировать Сообщить модератору
 Re: Что есть в oracle и нет в postgresql?  [new]
Dimitry Sibiryakov
Member

Откуда:
Сообщений: 53394

H5N1
зачем девелоперу видеть код, многие вещи можно и угадать.

Конечно. Особенно хорошо с угадыванием помогают намёки документации. Хотя о чём это я,
пользователю же можно просто вывалить заголовок пакета, а дальше он и сам разберётся, не
маленький.

Posted via ActualForum NNTP Server 1.5

23 сен 20, 14:06    [22202669]     Ответить | Цитировать Сообщить модератору
 Re: Что есть в oracle и нет в postgresql?  [new]
env
Member

Откуда: Россия, Москва
Сообщений: 7492
Dimitry Sibiryakov,

Перелопатить сотню процедур в пакете

Сто процедур в пакете в большинстве случаев не требуется, т.к. это инкапсуляция логики отдельного процесса или утилитарного функционала, который можно и нужно декомпозировать на отдельные составляющие. Опережая вопрос, в этом случае вряд ли будет нужна некая общая переменная для всех процедур. А если такая нужна - выносится в пакет с глобальными переменными уровня сессии, где можно закрыть её через get/set-методы с проверкой вызывающего.

Или
просто у Вас не укладывается в голове существование схемы, созданной под три процедур

Нет, это Вам похоже очень сложно представить себе работу с пакетами, декомпозицию и инкапсуляцию логики. Лично я уже наелся при работе с sql server варианта "схема под три процедуры", спасибо, больше не хочется. Особенно, когда начинается рефакторинг общих вызовов с созданием новых схем.

В том, что "торчит наружу" только три, а остальные пользователю видеть и вызывать запрещено?

Пользователю (именно пользователю, т.е. приложению или вызывающему клиенту) не нужно знать код процедур. Ему достаточно знать контракт вызова в виде их сигнатуры, а не код реализации каждого метода. Не говоря уж о том, что у пользователя в принципе не должно быть возможности вызвать служебные методы, которые не предназначены для внешнего использования.
23 сен 20, 15:07    [22202747]     Ответить | Цитировать Сообщить модератору
 Re: Что есть в oracle и нет в postgresql?  [new]
env
Member

Откуда: Россия, Москва
Сообщений: 7492
В обратную сторону - у postgresql есть замечательная штука с объявлением окна, общего для нескольких функций. Прям хочется такое же.

Честно говоря, не знаю, насколько сейчас хорошо в postgesql с секционированием, что можно, какие поддерживаются способы и сочетания. Может кто подсказать?
23 сен 20, 15:14    [22202753]     Ответить | Цитировать Сообщить модератору
 Re: Что есть в oracle и нет в postgresql?  [new]
H5N1
Member

Откуда: Yo.! из "Сравнения субд"
Сообщений: 515
Dimitry Sibiryakov

Конечно. Особенно хорошо с угадыванием помогают намёки документации.

документация ? что за легаси. только телеграмм бот !

Dimitry Sibiryakov

Хотя о чём это я, пользователю же можно просто вывалить заголовок пакета, а дальше он и сам разберётся, не
маленький.

о чем ты думаю ты и сам уже ответить не сможешь. чего девелопер должен делать, если ему нужно расширить "package" 101 процедурой я так и не понял.
23 сен 20, 16:18    [22202806]     Ответить | Цитировать Сообщить модератору
 Re: Что есть в oracle и нет в postgresql?  [new]
softwarer
Member

Откуда: 127.0.0.1
Сообщений: 65894
Блог
env
Нет, это Вам похоже очень сложно представить себе работу с пакетами, декомпозицию и инкапсуляцию логики.

Вы, похоже, недавно знакомы с Димой. Наверное, Вы видели такой эффект: ребёнок пытается перепрыгнуть через скамейку, недопрыгивает, падает и кричит: "Плохая скамейка!" Вот у Димы примерно такие же взаимоотношения с Oracle-ом.
23 сен 20, 17:44    [22202869]     Ответить | Цитировать Сообщить модератору
 Re: Что есть в oracle и нет в postgresql?  [new]
Dimitry Sibiryakov
Member

Откуда:
Сообщений: 53394

softwarer
Вот у Димы примерно такие же взаимоотношения с Oracle-ом.

Хммм... Переход на личности... В ФИДО это был бы верный признак, что дискуссия слита и её
можно пристрелить.

Posted via ActualForum NNTP Server 1.5

23 сен 20, 17:48    [22202874]     Ответить | Цитировать Сообщить модератору
 Re: Что есть в oracle и нет в postgresql?  [new]
env
Member

Откуда: Россия, Москва
Сообщений: 7492
Dimitry Sibiryakov,

Расчехляйте плюсомёт, что уж там
23 сен 20, 17:50    [22202876]     Ответить | Цитировать Сообщить модератору
 Re: Что есть в oracle и нет в postgresql?  [new]
Leonid Kudryavtsev
Member

Откуда:
Сообщений: 9651
IMHO Дискуссия слита еще на первой странице. Сейчас остался только флейм и троллинг

наброс "Что есть в oracle и нет в postgresql?" на вентилятор, слишком толсто и тяжело - не взлетит.
23 сен 20, 17:53    [22202880]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: Ctrl  назад   1 2 [3] 4 5 6   вперед  Ctrl      все
Все форумы / Сравнение СУБД Ответить