/*
* Автор: Борисов Д.Г.
* Дата: 2014-09-06
* Назначение: Актуализация СЛК
* Изменяются объекты:
		create function NewFunction
		drop procedure DelProc
		update table UpdatedTable
*/

/*
  ****** Инструкции для SQLPlus (обязательно) ******
  Для печати сообщений:
  DBMS_OUTPUT.put_line('<Message>');
*/
whenever sqlerror exit 1;
set serveroutput on;
set echo off;

declare
	filename      varchar2(256) := 'sfm.database-update.2014-09-06.SLCActualization.sql';
	purpose       varchar2(4000) := 'Актуализация СЛК';
	script_exists number := 0;
begin

	--delete from DB_Update_History where script_name = filename;	commit;
	select count(*)
		into script_exists
		from DB_Update_History
	 where script_name = filename;

	if (script_exists > 0) then
		RAISE_APPLICATION_ERROR(-20001, '"' || filename || '" уже присутствует в базе');
	else
		insert into DB_Update_History
			(script_name, purpose)
		values
			(filename, purpose);
	end if;

	commit;

exception
	when others then
		rollback;
		raise;
end;
/

ALTER TABLE KFM.SLK_RULE_DIRECTORYVALUE DROP COLUMN DATACODE;

ALTER TABLE KFM.DOCUMENT_FIELD
MODIFY(PRIORITY  DEFAULT 1);

COMMENT ON COLUMN KFM.SLK_RULE_BOOLEANVALUE.ERROR_TEMPLATE IS 'Шаблон сообщения об ошибке по-русски';

COMMENT ON COLUMN KFM.SLK_RULE_BOOLEANVALUE.ERROR_TEMPLATE_KZ IS 'Шаблон сообщения об ошибке по-казахски';

COMMENT ON COLUMN KFM.SLK_RULE_BOOLEANVALUE.EXPRESSION IS 'Значение поля должно быть равно значению логического выражения, заданого Expression';

COMMENT ON COLUMN KFM.SLK_RULE_BOOLEANVALUE.RULE_ID IS 'Ссылка один-к-однму на описание правила';

COMMENT ON TABLE KFM.SLK_RULE_BOOLEANVALUE IS 'Таблица для правила, которое задает вычислимое логическое поле';


ALTER TABLE KFM.DOCUMENT_FIELD
  DROP CONSTRAINT CHECK_DOCUMENT_FIELD_DATA_TYPE


ALTER TABLE KFM.DOCUMENT_FIELD ADD (
  CONSTRAINT CHECK_DOCUMENT_FIELD_DATA_TYPE
  CHECK (DATA_TYPE IN ('NUMBER', 'TEXT', 'DIRECTORY', 'BOOLEAN', 'DATE', 'KATO_CITY', 'ANALYTICTYPE'))
  ENABLE VALIDATE)
