вопрос про пакеты
От: Kaifa Россия  
Дата: 30.01.19 17:25
Оценка:
сегодня случилось странное. стала вылетать ошибка невалидности пакета, который, судя по свн не менялся уже несколько лет. соответственно наверное ничего в нем не менялось и на продакте. обновил — ошибка исчезла. что могло привести к тому что он стал невалидным, учитывая что я единственный кто мог чего-то в нем поменять? сисадмины какие-то манипуляции с базой могли провести для такого эффекта?
Re: вопрос про пакеты
От: wildwind Россия  
Дата: 30.01.19 17:38
Оценка:
Здравствуйте, Kaifa, Вы писали:


K>сегодня случилось странное. стала вылетать ошибка невалидности пакета


Самого пакета или тела (package body)? И в какой момент?


P.S. Ставь, пожалуйста, тег используемой СУБД. А также постарайся давать темам информативные имена. Например, включить в название текст ошибки.
Re[2]: вопрос про пакеты
От: Kaifa Россия  
Дата: 30.01.19 18:00
Оценка:
W>Самого пакета или тела (package body)? И в какой момент?

я просто пишу по памяти. дома оракла нет да и врядли бы повторил ошибку.
invalid package body вроде.

W>P.S. Ставь, пожалуйста, тег используемой СУБД. А также постарайся давать темам информативные имена. Например, включить в название текст ошибки.


10 оракл. если ты про это.
Re[3]: вопрос про пакеты
От: BlackEric http://black-eric.lj.ru
Дата: 31.01.19 07:27
Оценка:
Здравствуйте, Kaifa, Вы писали:

W>>Самого пакета или тела (package body)? И в какой момент?


K>я просто пишу по памяти. дома оракла нет да и врядли бы повторил ошибку.

K>invalid package body вроде.

Мог быть изменен пакет от которого зависит пакет ставший невалидным. Например, добавлен еще один параметр в функцию вызываемую из невалидного пакета.
Попробуйте его перекомпилировать и все увидите по тексту ошибки.
https://github.com/BlackEric001
Re[4]: вопрос про пакеты
От: Kaifa Россия  
Дата: 31.01.19 08:58
Оценка:
BE>Мог быть изменен пакет от которого зависит пакет ставший невалидным. Например, добавлен еще один параметр в функцию вызываемую из невалидного пакета.
BE>Попробуйте его перекомпилировать и все увидите по тексту ошибки.

вот я его и перекомпилировал. и ошибка пропала )
Re[5]: вопрос про пакеты
От: IZM  
Дата: 01.02.19 15:56
Оценка:
Если пакет завит от другого пакета и в последнем произведены изменения
Добавили функцию/процедуру в спецификацию пакета не в конец, а где-то в середину. Или изменили параметры вызова у существующих,
То получите инвалидизацию.
Рекомендации — добавлять функции и процедуры в конец пакета.
Так же возможна инвалидизация, если пакет зависит от таблицы, которую изменили по структуре.
Рекомендации использовать представления.
Отредактировано 01.02.2019 15:57 IZM . Предыдущая версия .
Re[6]: вопрос про пакеты
От: Kaifa Россия  
Дата: 02.02.19 06:38
Оценка: :)
Здравствуйте, IZM, Вы писали:

IZM>Если пакет завит от другого пакета и в последнем произведены изменения


т.к. с этой системой работаю только я, то врядли менялось что-то. я грешу на админов. интересно только что они могли сделать.

кстати. на кой хрен вообще ввели эту концепцию пакетов? ведь такой бардак получается в итоге. особенно если без стандартизации плодить эти пакеты на протяжении многих лет.
в мс сиквеле в этом плане все прозрачно... в общем все больше и больше матерю этот оракл по мере изучения. раздача прав — вообще что-то с чем-то. давайте еще права на каждую колонку выдавать... что за паранойя? это вообще хоть раз использовалось кем-то на практике? идиотизм полнейший. разделение пл сиквел и сиквел — вообще полнейший маразм. к постгри это тоже относится. майкрософт все же молодцы. хоть изначально это и не их разработка.
Re[7]: вопрос про пакеты
От: IZM  
Дата: 02.02.19 16:42
Оценка:
K>кстати. на кой хрен вообще ввели эту концепцию пакетов? ведь такой бардак получается в итоге. особенно если без стандартизации плодить эти пакеты на протяжении многих лет.
А что лучше чтоб валялась куча процедур и функций? вот тогда точно будет полный бардак. и это Вам никто не запрещает делать — не плодите пакеты и все.
На много удобнее когда функции и процедуры относящиеся к определенным задачам лежат в одном месте (как вариант для не любителей пакетов — использовать разные схемы, но там будут опять же претензии к раздаче прав).
раздать права на много функций и процедур намного трудозатратнее чем на пакет.
В пакете можно реализовывать полиморфизм (перегрузку функций и процедур).
Можете формировать глобальные переменные (значение которых ,например, использовать в одной сессии)
Вообщем там много чего полезного, относительно отдельных функций и процедур.

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

Не хотите раздавать права — работайте в одной схеме и Сonnect к БД делайте от имени схемы — никаких раздач прав не потребуется.
Раздача прав на колонку — это очень полезная вещь ,например, есть у Вас таблица, а значения колонок некоторых вы не желаете показывать некоторым личностям (Найти применение проблем нету)
Разделение на Pl/Sql и Sql — каждый движок оптимизирован под свои задачи, так что свои плюсы есть.

поработаете — полюбите у всех свои плюсы и минусы.
Мне, например, У FireBird нравятся некоторые фишки — к процедурам можно обращаться как к таблицам (они там могут табличный вывод делать), в Оracle приходится возвращать табличный тип для такой реализации и куда больше кода писать.
Отредактировано 02.02.2019 17:14 IZM . Предыдущая версия .
Re[7]: вопрос про пакеты
От: TMU_1  
Дата: 06.02.19 14:29
Оценка:
K>т.к. с этой системой работаю только я, то врядли менялось что-то. я грешу на админов. интересно только что они могли сделать.
K>кстати. на кой хрен вообще ввели эту концепцию пакетов? ведь такой бардак получается в итоге. особенно если без стандартизации плодить эти пакеты на протяжении многих лет.


(Назидательно) Если выпить достаточно много из бутылки с надписью "Яд", скорее всего почувствуешь себя не очень хорошо. Алиса в стране чудес.
Если делать что угодно абы как на протяжении многих лет — наверняка будет бардак.
Пакеты — очень удобная штука. Логическое объединение связанных по смыслу процедур и функций, переменные уровня пакета и т.д.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.