Процедуры Oracle против процедур MS против пакетов Oracle - PullRequest
2 голосов
/ 12 мая 2011

Кто-то сказал мне, что когда вы создаете процедуры в Oracle, вы должны создать пакет с процедурами в нем.Это правдивое утверждение?Процедуры в MS такие же, как Oracle?

Ответы [ 4 ]

3 голосов
/ 13 мая 2011

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

Единственным исключением является условие AUTHID . Это может быть указано только для всего пакета или отдельной процедуры / функции. Различные процедуры внутри одного пакета не могут иметь разные привилегии.

3 голосов
/ 13 мая 2011

Хранимые процедуры и функции очень похожи между Oracle и SQL Server (или MySQL, PostgreSQL и т. Д.). Функция SQL предназначена для того, чтобы всегда возвращать тип данных SQL; хранимая процедура может возвращать тип данных SQL, но не по умолчанию.

Пакет Oracle - это потрясающий инструмент.

  • SQL Server имеет сборки, но они не так сразу доступны, как пакеты Oracle.
  • Помимо того, что Oracle является контейнером для функций и хранимых процедур, он поддерживает объявление переменных, когда другие альтернативы будут доступны только через функции.
  • Пакеты Oracle также допускают логическую группировку функциональности без необходимости настройки схем (для пространства имен). Из-за того, что содержится в пакете, вы развертываете пакет, а не функции / хранимые процедуры по отдельности.
  • Мое единственное сожаление состояло в том, что в IME (Oracle 9i, 10g) вы не могли перейти к конкретной функции / хранимой процедуре / строке при трассировке ссылок.

Ничто не требует от вас использования пакетов Oracle, но вы действительно выиграете от их использования, а не от. Я не понимаю, почему другие производители не воспроизводили эту функциональность по-своему.

3 голосов
/ 12 мая 2011

Процедуры в Oracle и MS похожи, но да, в Oracle вы создаете пакет, объявляющий процедуру, а затем определяете процедуру в теле пакета

В этом есть хорошая информация о том, как собрать пакет Oracle

2 голосов
/ 13 мая 2011

Существует множество причин использовать пакеты вместо отдельных процедур / функций, а также несколько ситуаций, когда вы не будете использовать пакеты. Вместо того, чтобы пытаться перефразировать их по памяти, я укажу вам отличную статью от pl / sql guru Steve Feuerstein .

Примечание: статье уже несколько лет, но обоснование все еще остается в силе

...