Комментирование хранимой процедуры Oracle - PullRequest
3 голосов
/ 15 марта 2011

Я хочу прокомментировать хранимую процедуру в Oracle как-то так

-- MODIFICATION HISTORY
-- Person           Date            Comments
-- ---------        ------          ------------------------------------------
-- MICK             09/15/2010      New Sproc

CREATE OR REPLACE PROCEDURE INTERMISSIONS(
                            p_Myid        IN NUMBER,
                            p_Mytype      IN NUMBER,
                            p_recordset         OUT GET_RESULTS_BY_ID_PKG.get_by_id_cursor)

Как вы делаете это в Oracle?Как разработчики комментируют SPROC.Комментарий находится внутри хранимой процедуры?Это будет выглядеть ужасно, когда есть множество изменений, поэтому ищите лучшие практики и советы: -)

Спасибо, Мик

Ответы [ 3 ]

8 голосов
/ 15 марта 2011

Комментарии - это еще одна причина, чтобы держаться подальше от хранимых процедур и использовать вместо них пакеты.

Вы можете комментировать упакованную процедуру так, как вы хотите, например:

CREATE OR REPLACE PACKAGE your_package
AS
  --
  -- MODIFICATION HISTORY
  -- Person           Date           Comments
  -- ---------        ------         ------------------------------------------
  -- MICK             09/15/2010     Created new packaged procedure INTERMISSIONS
  --  
  PROCEDURE INTERMISSIONS
  ( p_Myid      IN  NUMBER
  , p_Mytype    IN  NUMBER
  , p_recordset OUT GET_RESULTS_BY_ID_PKG.get_by_id_cursor
  );
END your_package;

С уважением,
Роб.

4 голосов
/ 15 марта 2011

Я всегда упаковываю свои процедуры и добавляю комментарии, содержащие историю версий, сразу после оператора package / body body

CREATE OR REPLACE PACKAGE test_pkg AS
-- 
-- Version History
-- version date      Name  Description
-- 1.0     13/3/2011 pablo initial version
-- 
PROCEDURE proc1
2 голосов
/ 15 марта 2011

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

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

Обычно я устанавливаю теги для системы контроля версий в комментариях враздел объявлений, чтобы система контроля версий обновляла его автоматически.Таким образом, я всегда могу видеть текущую версию, и этого достаточно.

Действительно, в моем текущем проекте стандартная система обработки / регистрации исключений, которую мы построили, получает информацию о версии из переменных в наших пакетах API, чтобымы можем связать записанные ошибки кода с версиями программного обеспечения.Переменные обновляются автоматически через теги, которые распознает система контроля версий.

например, каждый пакет имеет следующее:

 create or replace package body pkg_payment_api as  
   cs_package_name     CONSTANT VARCHAR2(60) :='pkg_payment_api';
   cs_package_version  CONSTANT VARCHAR2(30) := '$Rev: 24992 $';
   cs_package_author   CONSTANT VARCHAR2(30) := '$Author: MBrought $';
   cs_package_date     CONSTANT VARCHAR2(60) := '$Date: 2011-03-08 14:54:48 -0500 (Tue, 08 Mar 2011) $';

   FUNCTION get_package_version
   RETURN varchar2
   IS
   BEGIN
        RETURN 'Version: '||cs_package_version || ' Author: ' ||cs_package_author || ' Timestamp: '||cs_package_date;
   END get_package_version;

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...