CftClub.ru
Клуб специалистов ЦФТ-Банк

склонение по падежам

 
Ответить на тему    Клуб специалистов ЦФТ-Банк (IBSO) -> Справочник PL/PLUS: Функции, примеры, приёмы
Предыдущая тема :: Следующая тема  
Автор Сообщение
Псевдоним123
Участник - экстремал


Вступление в Клуб: 05.06.2018
СообщениеСр Июл 25, 2018 17:16   склонение по падежам Ответить с цитатой
Полезность: Нет оценки
добрый день.

подскажите:
есть библиотечная функция склонения по падежам. (короткое имя PADEG)

как к ней программно обратиться?
пробовал так:

Код:
l_val := ::[RUNTIME].[PADEG].GetOffice(l_val, 3);


пишет ошибку, у типа RUNTIME нет реквизита или операции [PADEG].

что я делаю не так?
Alkov
Профи


Вступление в Клуб: 23.09.2010
СообщениеЧт Июл 26, 2018 05:29    Ответить с цитатой
Полезность: Нет оценки
Ну значит нет такой операции в типе RUNTIME ,
у меня она например в типе ::[DECLENSION].[PADEG]

p.s. первый день код пишите ?
Псевдоним123
Участник - экстремал


Вступление в Клуб: 05.06.2018
СообщениеЧт Июл 26, 2018 08:51    Ответить с цитатой
Полезность: Нет оценки
а как и где посмотреть к какому типу какая функция относится?
Матвеев Евгений
Профи


Вступление в Клуб: 31.01.2012
СообщениеЧт Июл 26, 2018 09:10    Ответить с цитатой
Полезность: Нет оценки
Псевдоним123 пишет:
а как и где посмотреть к какому типу какая функция относится?


В администраторе словария данных

::[DECLENSION].[PADEG]

Тип базового понятия [DECLENSION]
Внутри(в типе) операция [PADEG]
Псевдоним123
Участник - экстремал


Вступление в Клуб: 05.06.2018
СообщениеЧт Июл 26, 2018 10:21    Ответить с цитатой
Полезность: Нет оценки
вылезла ошибка
Код:
subprogram or cursor 'GetOffice' is declared in a package specification and must be defined in the package body



посмотрев свой код ошибки не обнаружил, в чем я туплю?
Матвеев Евгений
Профи


Вступление в Клуб: 31.01.2012
СообщениеЧт Июл 26, 2018 10:23    Ответить с цитатой
Полезность: Нет оценки
Псевдоним123 пишет:
вылезла ошибка
Код:
subprogram or cursor 'GetOffice' is declared in a package specification and must be defined in the package body



посмотрев свой код ошибки не обнаружил, в чем я туплю?


Пришли свой код...который выдает такую ошибку

По тексту ошибки видимо GetOffice объявлен в секции Глобальные описания и не реализован в секции Локальные описания... но это не точно...
Псевдоним123
Участник - экстремал


Вступление в Клуб: 05.06.2018
СообщениеЧт Июл 26, 2018 10:35    Ответить с цитатой
Полезность: Нет оценки
если убираю функцию ошибка все-равно остается...


Код:
function get_dep_pad(p_kode number)
return varchar2(2000)
is
   l_name   varchar2(2000);
   l_depart   varchar2(2000);
begin
      select    d(d.[name]) in [depart] where d%id = p_kode into l_depart;
      l_name := ::[DECLENSION].[PADEG].GetOffice(l_depart, 3);
   
   return l_name;
end;
Матвеев Евгений
Профи


Вступление в Клуб: 31.01.2012
СообщениеЧт Июл 26, 2018 10:39    Ответить с цитатой
Полезность: Нет оценки
Псевдоним123 пишет:
если убираю функцию ошибка все-равно остается...


Код:
function get_dep_pad(p_kode number)
return varchar2(2000)
is
   l_name   varchar2(2000);
   l_depart   varchar2(2000);
begin
      select    d(d.[name]) in [depart] where d%id = p_kode into l_depart;
      l_name := ::[DECLENSION].[PADEG].GetOffice(l_depart, 3);
   
   return l_name;
end;



Твоя функция компилируется без ошибок у меня...
Тут всё ок

Второй вопрос... в каком месте она у тебя располагается?

Пришли наименование блока - секции и содержимое по возможности

если убираю функцию ошибка все-равно остается... значит ошибка не в функции)
Псевдоним123
Участник - экстремал


Вступление в Клуб: 05.06.2018
СообщениеЧт Июл 26, 2018 10:46    Ответить с цитатой
Полезность: Нет оценки
нашел я ошибку...
перезашел в пакет, а в нем глобальные описания имеются, которые в локальных описаниях не используются....
Псевдоним123
Участник - экстремал


Вступление в Клуб: 05.06.2018
СообщениеЧт Июл 26, 2018 10:49    Ответить с цитатой
Полезность: Нет оценки
Матвеев Евгений пишет:
Псевдоним123 пишет:
а как и где посмотреть к какому типу какая функция относится?


В администраторе словария данных

::[DECLENSION].[PADEG]

Тип базового понятия [DECLENSION]
Внутри(в типе) операция [PADEG]



а подскажите еще, не могу сообразить как это посмотреть...
Матвеев Евгений
Профи


Вступление в Клуб: 31.01.2012
СообщениеЧт Июл 26, 2018 10:53    Ответить с цитатой
Полезность: 1
Матвеев Евгений пишет:
Псевдоним123 пишет:
а как и где посмотреть к какому типу какая функция относится?


В администраторе словария данных

::[DECLENSION].[PADEG]

Тип базового понятия [DECLENSION]
Внутри(в типе) операция [PADEG]


Запускаешь "администраторе словария данных"
Далее ctrl+f поиск галка типы с втроке DECLENSION поиск потом переходишь в найденную папку, внутри библиотечная операция PADEG

Мишуры всякой полно

Код:

/* Внимание! Данная библиотека не гарантирует 100% точность и при её использовании желательно обеспечить визуальный контроль результата со стороны пользователя. */


procedure Get_FIO
/* Процедура преобразования фамилии, имени, отчества из именительного падежа в заданный падеж. */
   (cLastName in out varchar2(32767)
      /* Фамилия. В этот же параметр записывается результат склонения. */
   ,cFirstName in out varchar2(32767)
      /* Имя. В этот же параметр записывается результат склонения. */
   ,cMiddleName in out varchar2(32767)
      /* Отчество. В этот же параметр записывается результат склонения. */
   ,cSex varchar2(1)
      /* Пол. Допустимые значения: "м", "ж", null. */
   ,nPadeg integer
      /* Падеж. Допустимые значения: 1,2,3,4,5,6 (1-именительный, 2-родительный, 3-дательный, 4-винительный, 5-творительный, 6-предложный). */
   );

function GetFIO
/* Функция преобразования фамилии, имени, отчества из именительного падежа в заданный падеж. */
   (cLastName varchar2(32767)
      /* Фамилия. */
   ,cFirstName varchar2(32767)
      /* Имя. */
   ,cMiddleName varchar2(32767)
      /* Отчество. */
   ,cSex varchar2(1)
      /* Пол. Допустимые значения: "м", "ж", null. */
   ,nPadeg integer
      /* Падеж. Допустимые значения: 1,2,3,4,5,6 (1-именительный, 2-родительный, 3-дательный, 4-винительный, 5-творительный, 6-предложный). */
   )
   /* ФИО в заданном падеже. */
   return varchar2(32767);

function GetFIOFromStr
/* Функция преобразования фамилии, имени, отчества, записанных одной строкой, из именительного падежа в заданный падеж. */
   (cFIO varchar2(32767)
      /* Фамилия Имя Отчество. */
   ,cSex varchar2(1)
      /* Пол. Допустимые значения: "м", "ж", null. */
   ,nPadeg integer
      /* Падеж. Допустимые значения: 1,2,3,4,5,6 (1-именительный, 2-родительный, 3-дательный, 4-винительный, 5-творительный, 6-предложный). */
   )
   /* ФИО в заданном падеже. */
   return varchar2(32767);

function GetSex
/* Определение пола по отчеству в некотором падеже. */
   (cMiddleName varchar2
      /* Отчество. */
   )
   /* Пол: "м", "ж" или null. */
   return varchar2;

procedure GetFIOParts
/* Разделение ФИО на фамилию, имя, отчество. */
   (cFIO varchar2
      /* фамилия, имя и отчество, разделенные пробелами. */
   ,cLastName out varchar2
      /* Возвращаемая фамилия. */
   ,cFirstName out varchar2
      /* Возвращаемое имя. */
   ,cMiddleName out varchar2
      /* Возвращаемое отчество. */
   );

function GetPadeg
/* Определение падежа по ФИО. */
   (cLastName varchar2(32767)
      /* Фамилия. */
   ,cFirstName varchar2(32767)
      /* Имя. */
   ,cMiddleName varchar2(32767)
      /* Отчество. */
   ,cSex in out varchar2(1)
      /* Пол. Допустимые значения: "м", "ж". Если не задан, то определяется автоматически и возвращается через параметр. */
   )
   /* Значение падежа (0,1,2,3,4,5,6): 0 - при невозможности определить, 1-именительный, 2-родительный, 3-дательный, 4-винительный, 5-творительный, 6-предложный. */
   return integer;

function GetNominativeFromStr
/* Определение именительного падежа просклоненного ФИО. */
   (cFIO varchar2(32767)
      /* фамилия, имя и отчество, разделенные пробелами. */
   ,cSex varchar2(1) default null
      /* Пол. Допустимые значения: "м", "ж", null. */
   ,nPadeg integer default null
      /* Падеж. Допустимые значения: 1,2,3,4,5,6 (1-именительный, 2-родительный, 3-дательный, 4-винительный, 5-творительный, 6-предложный). */
   )
   /* ФИО в именительном падеже. */
   return varchar2(32767);

function GetNominative
/* Определение именительного падежа просклоненного ФИО. */
   (cLastName varchar2(32767)
      /* Фамилия. */
   ,cFirstName varchar2(32767)
      /* Имя. */
   ,cMiddleName varchar2(32767)
      /* Отчество. */
   ,cSex varchar2(1) default null
      /* Пол. Допустимые значения: "м", "ж", null. */
   ,nPadeg integer default null
      /* Падеж. Допустимые значения: 1,2,3,4,5,6 (1-именительный, 2-родительный, 3-дательный, 4-винительный, 5-творительный, 6-предложный). */
   )
   /* ФИО в именительном падеже. */
   return varchar2(32767);

function GetAppointment
/* Преобразование наименования должности в заданный падеж. */
   (pName varchar2(32767)
      /* Наименование должности. */
   ,nPadeg integer
      /* Падеж. Допустимые значения: 1,2,3,4,5,6 (1-именительный, 2-родительный, 3-дательный, 4-винительный, 5-творительный, 6-предложный). */
   )
   /* Наименование должности в заданном падеже. */
   return varchar2(32767);

function GetOffice
/* Преобразование наименования подразделения в заданный падеж. */
   (pName varchar2(32767)
      /* Наименование подразделения. */
   ,nPadeg integer
      /* Падеж. Допустимые значения: 1,2,3,4,5,6 (1-именительный, 2-родительный, 3-дательный, 4-винительный, 5-творительный, 6-предложный). */
   )
   /* Наименование подразделения в заданном падеже. */
   return varchar2(32767);

function GetFullAppointment
/* Склонение объединенных наименований должности и подразделения. */
   (Appointment varchar2(32767)
      /* Наименование должности. */
   ,Office varchar2(32767)
      /* Наименование подразделения. */
   ,nPadeg integer
      /* Падеж. Допустимые значения: 1,2,3,4,5,6 (1-именительный, 2-родительный, 3-дательный, 4-винительный, 5-творительный, 6-предложный). */
   )
   /* Наименований должности и подразделения в заданном падеже. */
   return varchar2(32767);

procedure ExceptDic_reset
/* Сброс кэша словаря исключений. Следует выполнять, если в текущей сессии нужно учесть только что добавленные исключения. */
;

function properInitcap
/* Подъем регистра первых слов с учетом национальных приставок (оглы, кызы, ...) */
(
   cStr varchar2(32767)
   /* Строка для обработки с частью или полным ФИО */
)
/* Возвращает переданную строку с первыми буквами каждого слова в верхнем регистре */
return varchar2(32767);

Псевдоним123
Участник - экстремал


Вступление в Клуб: 05.06.2018
СообщениеЧт Июл 26, 2018 11:04    Ответить с цитатой
Полезность: Нет оценки
спасибо!
Показать сообщения:   
Ответить на тему    Клуб специалистов ЦФТ-Банк (IBSO) -> Справочник PL/PLUS: Функции, примеры, приёмы Часовой пояс: GMT + 3
Страница 1 из 1

 
Перейти:  
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Рейтинг@Mail.ru