Документация iSZN
pkGen.sql
GetLastDate
Описание
Возвращают LastDate и FirstDate соответственно.
GetFirstDate
Сообщения об ошибках
Error_InternalError
Описание
Вызывает exception «Внутренняя ошибка».
Error_InvalidParameters
Описание
Вызывает exception «Недопустимые параметры».
Error_UnimplementedFeature
Описание
Вызывает exception «Данная возможность не реализована».
Error_NotAUser
Описание
Выводит сообщение о том, что данная операция должна выполняться указанным пользователем.
InsufficientPrivs
Описание
Вызывает exception «Недостаточно привилегий на операцию».
Error_InvalidKeyList
Описание
Вызывает exception «Недопустимый список региональных ключей».
Error_InvalidGlobalSeqID
PROCEDURE Error_InvalidGlobalSeqID(iID PLS_INTEGER);
Описание
Вызывает exception «Глобальная последовательность не найдена».
Error_InvalidRgnSeqID
PROCEDURE Error_InvalidRgnSeqID(iID PLS_INTEGER);
Описание
Вызывает exception «Региональная последовательность не найдена».
Работа со строками
GetDBCharset
Описание
Возвращает наименование текущей кодировки в БД.
FixLineBreaksLinux
Описание
Преобразует переводы строк в формат Linux (LF).
FixLineBreaksWindows
Описание
Преобразует переводы строк в формат Windows (CR+LF).
BracedParamsToBoundVars
Описание
Заменяет параметры в фигурных скобках на binded-параметры.
Параметры:
- sSQL - SQL-выражение, содержащее параметры в фигурных скобках;
- Params - список имён параметров, которые требуется заменять.
TrimWhitespace
FUNCTION TrimWhitespace(s VARCHAR2, sWhitespaceChars VARCHAR2 := ' '||Chr(9)||Chr(10)||Chr(13)) RETURN VARCHAR2 deterministic;
Описание
Удаляет ведущие и терминирующие символы пробелов.
RemoveLastOrderBy
Описание
Удаляет последнее выражение order by из SQL-оператора select.
Quote
Описание
Заключает строку в указанный символ кавычки, дублируя также встречающиеся символы кавычки.
Dequote
FUNCTION Dequote(s VARCHAR2, sQuoteChar VARCHAR2 := '''', iStrict PLS_INTEGER := 1) RETURN VARCHAR2 deterministic;
Описание
Функция, обратная Quote; если исходная строка невалидна, при iStrict=0 возвращает null, иначе возникает exception.
ShortenStr
FUNCTION ShortenStr(s VARCHAR2, iMaxLength PLS_INTEGER, iKeepLineBreaks PLS_INTEGER := 0) RETURN VARCHAR2 deterministic;
Описание
Возвращает строку, усечённую при необходимости до заданной длины. При усечении в конце строки добавляется символ
многоточия.
Параметры:
- s - исходная строка;
- iMaxLength - максимальная допустимая длина результирующей строки;
- iKeepLineBreaks - усекать ли символы перевода строки Chr(13)||Chr(10) сразу оба (1) или оставлять при необходимости только один из них (0).
Transliterate
FUNCTION Transliterate(s VARCHAR2, iFullCaps PLS_INTEGER, iSkipSigns PLS_INTEGER) RETURN VARCHAR2 deterministic;
Описание
Выполняет транслитерацию русских символов в английские.
Параметры:
- s - исходная строка;
- iFullCaps - транслитерировать ли буквы “Ё”, “Ж” и т. п. полностью в верхний регистр (YO, ZH) (0/1);
- iSkipSigns - опустить ли при транслитерации мягкие и твёрдые знаки (0/1).
ConcWords
Описание
Если s1 и s2 не пустые, возвращает s1||s2, иначе - пустую строку.
ConcWordsSpc
Описание
Если s1 и s2 не пустые, возвращает s1||' '||s2, иначе - s1||s2.
ConcWordsDelim
Описание
Если s1 и s2 не пустые, возвращает s1||sDelim||s2, иначе - s1||s2.
ConvertHomoglyphsRuEn
FUNCTION ConvertHomoglyphsRuEn(sInput VARCHAR2, iToRussian PLS_INTEGER) RETURN VARCHAR2 deterministic;
Описание
Преобразует гомоглифы (одинаково выглядящие символы) из русского варианта в английский и обратно.
MakeValidPersonName
FUNCTION MakeValidPersonName(sValue VARCHAR2, iStrict PLS_INTEGER := 0) RETURN VARCHAR2 deterministic;
Описание
Возвращает исправленное значение фамилии, имени, отчества. Если sValue is null, возвращает null. Если значение не может быть исправлено, при iStrict!=0 генерируется exception, в противном случае возвращает null.
GetInitialName
FUNCTION GetInitialName(sName VARCHAR2, iInsertSpace PLS_INTEGER := 0) RETURN VARCHAR2 deterministic;
Описание
Возвращает инициал части имени вместе с «.». При iInsertSpace<>0 вставляет в начало пробел. Если строка пустая, возвращает null.
GetFullNameWithInitials
FUNCTION GetFullNameWithInitials(sLastName VARCHAR2, sFirstName VARCHAR2, sMiddleName VARCHAR2, iReverseOrder PLS_INTEGER := 0) RETURN VARCHAR2 deterministic;
Описание
Возвращает ФИО в формате «Фамилия И. О.» при iReverseOrder или в формате «И. О. Фамилия» при iReverseOrder!=0.
GetFullNameWithBirthYear
FUNCTION GetFullNameWithBirthYear(sLastName VARCHAR2, sFirstName VARCHAR2, sMiddleName VARCHAR2, iBirthYear PLS_INTEGER) RETURN VARCHAR2 deterministic;
Описание
Возвращает ФИО в формате «Фамилия Имя Отчество, nnnn г.р.».
GetFullPersonName
FUNCTION GetFullPersonName(sLastName VARCHAR2, sFirstName VARCHAR2, sMiddleName VARCHAR2, iSex PLS_INTEGER, dBirthDate DATE, dDeathDate DATE, iMode PLS_INTEGER) RETURN VARCHAR2 deterministic;
Описание
Возвращает описание человека.
Способ отображения в зависимости от значения iMode:
- 0 - возвращает [Фамилия Имя Отчество + дата рождения + дата смерти];
- 1 - возвращает [Фамилия И. О.];
- 2 - возвращает [Фамилия Имя Отчество].
GetSexFromName
FUNCTION GetSexFromName(sLastName VARCHAR2, sMiddleName VARCHAR2) RETURN PLS_INTEGER;
Описание
Определяет пол по фамилии и отчеству. Возвращает:
- 0 - мужской;
- 1 - женский;
- null - не удалось определить.
GetEquivNameNotations
FUNCTION GetEquivNameNotations(sName VARCHAR2, iMaxCaseCount PLS_INTEGER) RETURN uszn.TStringList4000;
Описание
Возвращает список эквивалентных наименований имени с учётом эквивалентности букв Е и Ё.
Список заполняется в верхнем регистре.
Параметры:
- sName - имя;
- iMaxCaseCount - максимальное количество рассматриваемых вариантов; если количество вариантов превышает этот предел, возвращает только iMaxCaseCount из них.
NormalizePersonName
FUNCTION NormalizePersonName(sName VARCHAR2, iNameKind PLS_INTEGER, iStrict PLS_INTEGER := 1) RETURN VARCHAR2 deterministic;
Описание
Нормализует имя (фамилию, отчество) человека: убирает лишние пробелы и разделители.
Параметры:
- sName - значение имени;
- iNameKind - вид имени: 1 - фамилия; 2 - имя; 3 - отчество.
- iStrict - определяет поведение при наличии в имени недопустимых символов.
Возвращает нормализованное имя или null, если имя не содержит ничего, кроме пробелов.
IntegerToWords
FUNCTION IntegerToWords(iNum INTEGER, iGender PLS_INTEGER) RETURN VARCHAR2 deterministic;
Описание
Преобразует число в число прописью.
Параметры:
- iNum - преобразуемое число;
- iGender - род: 0 - мужской; 1 - женский; 2 - средний.
OrdinalToWords
FUNCTION OrdinalToWords(iNum PLS_INTEGER, iGender PLS_INTEGER) RETURN VARCHAR2 deterministic;
Описание
Преобразует порядковое числительное в текст. Пока поддерживаются только числительные от 0 до 999.
Параметры:
- iNum - преобразуемое число;
- iGender - род: 0 - мужской; 1 - женский; 2 - средний.
CurrencyToWords
Описание
Возвращает сумму прописью в виде: «столько-то руб. 99 коп.».
CurrencyToWordsNum
FUNCTION CurrencyToWordsNum(nCurrency NUMBER, iUseGroupDelims PLS_INTEGER) RETURN VARCHAR2 deterministic;
Описание
Возвращает сумму прописью в виде: «nnnnnnnn руб. mm коп.»
Параметры:
- nCurrency - значение в рублях;
- iUseGroupDelims - использовать ли разделители групп разрядов (0/1).
MonthName
FUNCTION MonthName(iMonth PLS_INTEGER, iCase PLS_INTEGER := 0) RETURN VARCHAR2 deterministic;
Описание
Возвращает наименование месяца, iMonth=[1..12]
iCase (падеж):
- 0 - именительный
- 1 - родительный.
DateMonthName
FUNCTION DateMonthName(d DATE, iCase PLS_INTEGER := 0) RETURN VARCHAR2 deterministic;
Описание
Возвращает наименование месяца из даты, iMonth=[1..12]
iCase (падеж):
- 0 - именительный
- 1 - родительный.
DateToSQLExpr
Описание
Преобразует дату в строку вида ToDate('01.12.2005','dd.mm.yyyy'). Если d=null, возвращает null.
RgnPrefix
FUNCTION RgnPrefix(iRgnID uszn.tsrv_regions.id%TYPE, iNoZeroRgn PLS_INTEGER := 1) RETURN VARCHAR2 deterministic;
Описание
Возвращает ID района iRgnID в квадратных скобках. Если iNoZeroRgn!=0, то для iRgnID=0 возвращает пустую строку.
StripRgnPrefix
Описание
Возвращает исходную строку без регионального префикса; если префикс в строке отсутствует, она возвращается без изменений.
GetRegionIDFromGUID
FUNCTION GetRegionIDFromGUID(rGUID RAW, iStrict PLS_INTEGER) RETURN PLS_INTEGER deterministic;
Описание
Извлекает ID района из “районного” GUID версии 1 по RFC 4122. Если GUID ошибочен или содержит код района, выходящий за диапазон 0-999, поведение определяется параметром iStrict.
NounForCount
FUNCTION NounForCount(iCount PLS_INTEGER, sOne VARCHAR2, sSeveral VARCHAR2, sLots VARCHAR2, iZero PLS_INTEGER := 1) RETURN VARCHAR2 deterministic;
Описание
Возвращает существительное в зависимости от числа iCount (например, месяц, месяца, месяцев). Если iZero=0 (по умолчанию 1), то при iCount=0 возвращает null.
CLOBToVarchar
FUNCTION CLOBToVarchar(s IN CLOB, iMaxLen PLS_INTEGER := 4000) RETURN VARCHAR2;
Описание
Возвращает Varchar2 из CLOB, при необходимости «урезая» его до iMaxLen. При урезании добавляет в конце символ «…» так, что суммарная длина строки получается iMaxLen.
CLOBAppend
Описание
Добавляет строку sValue к CLOB.
BLOBAppend
Описание
Добавляет данные к BLOB.
CLOBToBLOB
Описание
Преобразует CLOB в BLOB.
Параметры:
- cSrc - исходные данные;
- sDestCharset - кодировка, в которой необходимо закодировать данные; по умолчанию сохраняется кодировка в БД.
BLOBToCLOB
Описание
Преобразует BLOB в CLOB.
Параметры:
- bSrc - исходные данные;
- sSrcCharset - кодировка исходных данных; по умолчанию считается, что кодировка совпадает с кодировкой БД.
BLOBToHex
Описание
Преобразует BLOB в CLOB.
Параметры:
- bSrc - исходные данные;.
FormatNameWithRKey
FUNCTION FormatNameWithRKey(sName VARCHAR2, iID PLS_INTEGER, iRegionID PLS_INTEGER, iDisplayMode PLS_INTEGER := 0) RETURN VARCHAR2 deterministic;
Описание
Возвращает форматированное наименование sName с ключом region_id-id:
iDisplayMode регулирует способ вывода результата:
- 0 - возвращает sName
- 1 - возвращает «sName»
- 2 - возвращает region_id-id («sName»)
- 3 - возвращает «[RgnPrefix] sName», где RgnPrefix выводится только для районов, отличных от 0
- 4 - возвращает [RgnPrefix] sName, где RgnPrefix выводится только для районов, отличных от 0.
DateIntervalToStr
Описание
Возвращает интервал времени в днях в виде текста, например 1 день 3 часа 12 секунд.
DateIntervalToStr
FUNCTION DateIntervalToStr(dFrom DATE, dTo DATE, iInitCap PLS_INTEGER := 1) RETURN VARCHAR2 deterministic;
Описание
Возвращает текстовое описание периода в виде «С 01.01.2000 по 01.01.2001». Если iInitCap=0, то первая буква
- делается строчной, иначе - заглавной. Даты (С=01.01.0001) и (По=31.12.9999) отбрасываются.
GetDelimitedStringPart
FUNCTION GetDelimitedStringPart(sString VARCHAR2, sDelimiter VARCHAR2, iPartOrderNum PLS_INTEGER) RETURN VARCHAR2 deterministic;
Описание
Разбивает строку по заданному sDelimiter и возвращает указанную её часть.
GetStringListItem
FUNCTION GetStringListItem(S uszn.TStringList255, iIdx PLS_INTEGER, iStrict PLS_INTEGER := 0) RETURN VARCHAR2;
Описание
Возвращает указанный элемент переданного списка строк.
ParseIntegerList
Описание
Получают из списка целых чисел, разделённых запятыми, таблицу целых чисел.
ParseIntegers
ParseRgnKeyList
Описание
Получает из списка region_id*1000000+id, разделённых запятыми, таблицу региональных ключей.
ParseRKeyList
Описание
Получает из списка (region_id,id), разделённых запятыми, таблицу региональных ключей.
ParseRKeyListCLOB
Описание
То же, но входной параметр - CLOB.
ParseRKeyListRev
Описание
Получает из списка (id,region_id), разделённых запятыми, таблицу региональных ключей.
SplitDelimitedString
FUNCTION SplitDelimitedString(sString VARCHAR2, sDelimiter VARCHAR2) RETURN TStrings255 deterministic;
Описание
Разбивает строку по заданному sDelimiter и возвращает все её части в массиве.
SplitDelimitedString4000
FUNCTION SplitDelimitedString4000(sString VARCHAR2, sDelimiter VARCHAR2) RETURN TStrings4000 deterministic;
Описание
Аналогична pkGen.SplitDelimitedString, но с другими ограничениями на размер строк.
Str30ListToStr
FUNCTION Str30ListToStr(ssValues IN TStrings30, sDelimiter VARCHAR2 := ',', sQuoteChar VARCHAR2 := '''') RETURN VARCHAR2 deterministic;
Описание
Преобразует массив значений Varchar2(30) в строку значений, разделённых разделителем sDelimiter. Если sQuoteChar не null, выполняется квотинг значений, в этом случае значения могут содержать символ разделителя.
Str255ListToStr
FUNCTION Str255ListToStr(ssValues IN TStrings255, sDelimiter VARCHAR2 := ',', sQuoteChar VARCHAR2 := '''') RETURN VARCHAR2 deterministic;
Описание
Преобразует массив значений Varchar2(255) в строку значений, разделённых разделителем sDelimiter. Если sQuoteChar не null, выполняется квотинг значений, в этом случае значения могут содержать символ разделителя.
Str4000ListToStr
FUNCTION Str4000ListToStr(ssValues IN TStrings4000, sDelimiter VARCHAR2 := ',', sQuoteChar VARCHAR2 := '''') RETURN VARCHAR2 deterministic;
Описание
Преобразует массив значений Varchar2(4000) в строку значений, разделённых разделителем sDelimiter. Если sQuoteChar не null, при необходимости выполняется квотинг значений, в этом случае значения могут содержать символ разделителя.
ParseCommaStr4000List
FUNCTION ParseCommaStr4000List(sList VARCHAR2, sDelimiter VARCHAR2 := ',', sQuoteChar VARCHAR2 := '''') RETURN TStrings4000 deterministic;
Описание
Получает из списка значений, разделённых разделителем sDelimiter, массив этих значений. Если sQuoteChar не null, выполняется деквотинг значений, в этом случае значения могут содержать символ разделителя.
ParseCrDelimitedStr4000List
Описание
Выполняет разбор строковых значений, разделённых переводами строк.
IndexOf
FUNCTION IndexOf(ssValues IN TStrings30, sValue VARCHAR2) RETURN PLS_INTEGER deterministic;
Описание
Возвращает индекс sValue в списке ssValues. Если sValue отсутствует в списке, возвращает null.
IndexOf
FUNCTION IndexOf(ssValues IN TStrings255, sValue VARCHAR2) RETURN PLS_INTEGER deterministic;
IndexOf
FUNCTION IndexOf(ssValues IN TStrings4000, sValue VARCHAR2) RETURN PLS_INTEGER deterministic;
Работа с региональными ключами
MakeRgnIDRec
FUNCTION MakeRgnIDRec(iID PLS_INTEGER, iRgnID PLS_INTEGER) RETURN TRgnIDRec deterministic;
Описание
Преобразует ID и REGION_ID в тип TRgnIDRec.
EncodeIDRgnID
FUNCTION EncodeIDRgnID(iID PLS_INTEGER, iRgnID PLS_INTEGER, iRgnFactor PLS_INTEGER := 1000000) RETURN PLS_INTEGER deterministic;
Описание
Кодирует iRgnID*iRgnFactor+iID → Pls_Integer.
EncodeRgnIDRec
FUNCTION EncodeRgnIDRec(RgnIDRec TRgnIDRec, iRgnFactor PLS_INTEGER := 1000000) RETURN PLS_INTEGER deterministic;
Описание
Кодирует RgnIDRec → Pls_Integer.
DecodeIDRgnID
PROCEDURE DecodeIDRgnID(iValue PLS_INTEGER, iID OUT PLS_INTEGER, iRgnID OUT PLS_INTEGER, iRgnFactor PLS_INTEGER := 1000000);
Описание
Декодирует iValue ← iRgnID*iRgnFactor+iID.
DecodeRgnIDRec
PROCEDURE DecodeRgnIDRec(iValue PLS_INTEGER, RgnIDRec OUT TRgnIDRec, iRgnFactor PLS_INTEGER := 1000000);
Описание
Декодирует iValue ← RgnIDRec.
Блокировки
LockSet
PROCEDURE LockSet(sLockName VARCHAR2, sErrorMessage VARCHAR2, iExclusive PLS_INTEGER, iTimeout INTEGER := 3);
Описание
Пытается установить блокировку с именем sLockName. Если это не удалось, вызывается Exception с сообщением sErrorMessage. iExclusive = 1 - если требуется установить эксклюзивную блокировку, 0 - shared-блокировку.
LockConvert
PROCEDURE LockConvert(sLockName VARCHAR2, sErrorMessage VARCHAR2, iExclusive PLS_INTEGER, iSetIfNotExists PLS_INTEGER, iTimeout INTEGER := 3);
Описание
Преобразует имеющуюся блокировку в указанную.
Если это не удалось, вызывается Exception.
Параметры:
- sLockName - имя блокировки;
- sErrorMessage - сообщение об ошибке, выдаваемое, если требуемую блокировку не удалось получить;
- iExclusive - 1 - если требуется получить эксклюзивную блокировку, 0 - shared-блокировку;
- iSetIfNotExists - устанавливать ли блокировку, если она ещё не установлена (0/1);
- iTimeout - время ожидания в секундах при попытке установить блокировку.
LockIsSet
FUNCTION LockIsSet(sLockName VARCHAR2, iExclusive PLS_INTEGER, iTimeout INTEGER := 3) RETURN PLS_INTEGER;
Описание
Проверяет наличие установленной блокировки с именем sLockName. Если она установлена, возвращает 1, иначе - 0. iExclusive = 1 - если проверяется наличие эксклюзивной блокировки, 0 - shared-блокировки. Внимание! Если блокировка установлена этой же сессией, то функция не может определить вид установленной блокировки и всегда возвращает 1.
LockRelease
Описание
Снимает блокировку с именем sLockName.
Работа с именами файлов
ExtractFilenameFromFullname
Описание
Извлекает filename.ext из /Path/filename.ext или C:\Path\filename.ext.
ExtractPathFromFullname
Описание
Извлекает /Path/ из /Path/filename.ext или C:\Path\ из C:\Path\filename.ext.
FileExtractName
Описание
Извлекает filename из filename.ext.
FileExtractExt
Описание
Извлекает ext из filename.ext.
Проверка допустимости значений типов
IsValidDate
FUNCTION IsValidDate(s VARCHAR2) RETURN PLS_INTEGER deterministic;
Описание
Возвращает 1, если строка s представляет собой дату в формате DD.MM.YYYY, иначе 0.
IsValidInteger
FUNCTION IsValidInteger(s VARCHAR2) RETURN PLS_INTEGER deterministic;
Описание
Возвращает 1, если строка s представляет собой допустимое целое число, иначе 0.
IsValidNumber
FUNCTION IsValidNumber(s VARCHAR2) RETURN PLS_INTEGER deterministic;
Описание
Возвращает 1, если строка s представляет собой допустимое число, иначе 0.
Перевод периодов из одних единиц в другие.
DaysToYears
FUNCTION DaysToYears(iDays PLS_INTEGER) RETURN NUMBER;
Описание
Преобразует период в днях в годы.
DaysToYMD
PROCEDURE DaysToYMD(iDaysFrom PLS_INTEGER, iYears IN OUT PLS_INTEGER, iMonths IN OUT PLS_INTEGER, iDays IN OUT PLS_INTEGER);
Описание
Преобразует период в днях в годы, месяцы и дни.
YearsToDays
FUNCTION YearsToDays(nYears NUMBER) RETURN PLS_INTEGER;
Описание
Преобразует период в годах в дни.
YearsToYMD
PROCEDURE YearsToYMD(nYearsFrom NUMBER, iYears IN OUT PLS_INTEGER, iMonths IN OUT PLS_INTEGER, iDays IN OUT PLS_INTEGER);
Описание
Преобразует период в годах в годы, месяцы и дни.
YMDToDays
FUNCTION YMDToDays(iYears PLS_INTEGER, iMonths PLS_INTEGER, iDays PLS_INTEGER) RETURN PLS_INTEGER;
Описание
Преобразует период в годах, месяцах и днях в дни.
YMDToYears
FUNCTION YMDToYears(iYears PLS_INTEGER, iMonths PLS_INTEGER, iDays PLS_INTEGER) RETURN NUMBER;
Описание
Преобразует период в годах, месяцах и днях в годы.
NormalizeYMD
PROCEDURE NormalizeYMD(iYears IN OUT PLS_INTEGER, iMonths IN OUT PLS_INTEGER, iDays IN OUT PLS_INTEGER);
Описание
Нормализует количество лет, месяцев и дней, чтобы количество дней было меньше 30, а количество месяцев - меньше 12.
YMDBetweenDates
PROCEDURE YMDBetweenDates(dDate1 DATE, dDate2 DATE, iYears OUT PLS_INTEGER, iMonths OUT PLS_INTEGER, iDays OUT PLS_INTEGER);
Описание
Рассчитывает количество лет, месяцев и дней между двумя датами включительно. Если какая-то из дат - null, она заменяется на текущую системную дату.
Работа с датами
AddDate
Описание
Добавляет дату к списку дат, если её там нет.
SortDates
Описание
Сортирует список дат: если iMode=0, то по возрастанию, иначе - по убыванию.
GetEffectiveDate
Описание
Возвращает дату из СОРТИРОВАННОГО списка, максимально близкую к d, но не позже её, или null, если d меньше самой
- первой даты.
GetTruncatedDate
FUNCTION GetTruncatedDate(d DATE, iPeriodicity PLS_INTEGER := 1, iAddPeriods PLS_INTEGER := 0, iStrict PLS_INTEGER := 1) RETURN DATE deterministic;
Описание
Возвращает дату d, округлённую с учётом периодичности iPeriodicity, к которой прибавлено iAddPeriods периодов;
периодичность задаётся в месяцах;
если d is null, возвращается null;
при возникновении ошибки:
- при iStrict=1 возникает исключение,
- в противном случае возвращается либо FirstDate, либо LastDate, в зависимости от знака iAddPeriods.
PrevDaySafe
Описание
Возвращают соответственно предыдущий и следующий день. Если d равна 01.01.0001 или 31.12.9999 соответственно, то дата возвращается без изменений.
NextDaySafe
DatesToStr
Описание
Преобразует список дат в строку, разделённую разделителем sDelim.
DelayToTime
FUNCTION DelayToTime(dBasicTime DATE, iDelaySec PLS_INTEGER) RETURN DATE;
Описание
Возвращает время, отстоящее от исходного на заданную величину.
Параметры:
- dBasicTime - исходное время;
- iDelaySec - задержка от исходного времени в секундах.
Работа с периодами
MakeWhile
Описание
Преобразует две даты в тип TWhile.
MakeWhilePrecedingMonth
FUNCTION MakeWhilePrecedingMonth(d DATE, iMonthCount PLS_INTEGER, iStrict PLS_INTEGER) RETURN TWhile;
Описание
Создаёт период продолжительностью iMonthCount месяцев, предшествующий месяцу даты d.
Если указанный период создать невозможно, поведение определяется параметром iStrict:
- при iStrict=0 возвращает: null, если месяц d=01.0001; максимально возможный период, даже если он будет короче требуемого.
- при iStrict=1 в указанных ситуациях возникает exception.
UnionWhiles
Описание
Производит объединение периодов. Если w1=null, то просто копирует w2 в w1.
IntersectWhiles
Описание
Вычисляет пересечение периодов. Если w1=null, то просто копирует w2 в w1, если w2=null - пересечение пустое.
ExcludeWhile
Описание
Исключает период w2 из w1.
InvertWhile
Описание
Инвертирует период w, разбивая его на два: wo1 и wo2.
IsInWhile
Описание
Возвращает, содержится ли дата d в периоде w.
IsWhileEmpty
Описание
Возвращает true, если d1 is null или d2 is null или d2<d1.
WhileToStr
Описание
Преобразует период в строку, разделяя даты запятой. Если w.d1=null и/или w.d2=null, то даты заменяются на FirstDate и LastDate соответственно.
WhilesToStr
Описание
Преобразует список периодов в строку, разделяя периоды запятой.
IntersectWhileTables
Описание
Находит пересечение периодов двух таблиц и возвращает периоды в wResult.
SortWhiles
PROCEDURE SortWhiles(w IN OUT NOCOPY TWhiles, iMode PLS_INTEGER := 0);
Описание
Сортирует таблицу периодов по d1, d2. Если iMode=0, то по возрастанию, иначе - по убыванию.
CompareWhiles
FUNCTION CompareWhiles(w1 TWhile, w2 TWhile) RETURN PLS_INTEGER;
Описание
Сравнивает последовательность w1 и w2, возвращая:
-1: w1 < w2
0: w1 пересекается с w2
1: w1 > w2
Проверка на то, что w1 и w2 - непустые, не производится!
SplitWhile
Описание
Разбивает интервал wIn по дате d. Если bIncluding=True, то d включается в wIn, в противном случае - в wOut Проверка на то, что wIn и d - непустые, не производится!
BuildPeriodicWhiles
FUNCTION BuildPeriodicWhiles(dDateFrom DATE, dDateTo DATE, iPeriodSize PLS_INTEGER) RETURN TWhiles;
Описание
Создаёт и возвращает список периодов с dDateFrom по dDateTo с периодичностью iPeriodSize месяцев. При этом dDateFrom и dDateTo не округляются.
BuildWhilesByControlDates
FUNCTION BuildWhilesByControlDates(dDateFrom DATE, dDateTo DATE, ControlDates IN TDates) RETURN TWhiles;
Описание
Создаёт и возвращает список периодов с dDateFrom по dDateTo с разбивкой по датам в ControlDates. Даты в ControlDates должны быть отсортированы по возрастанию.
ParseWhiles
Описание
Разбирает список периодов в виде «<дата1>,<дата2>,...».
Проверки дат и периодов на допустимость
CheckDate
Описание
Проверяет, что дата непустая; при ошибке генерирует исключение.
CheckWhile
PROCEDURE CheckWhile(w TWhile);
Описание
Проверяет, что диапазон не является пустым и d2>=d1; при ошибке генерирует исключение.
CheckWhileSequence
PROCEDURE CheckWhileSequence(w1 TWhile, w2 TWhile);
Описание
Проверяет, что диапазоны являются допустимыми и следуют друг за другом; при ошибке генерирует исключение.
Работа со связными списками периодов
GetEmptyWhileRecs
Описание
Возвращает связанный список периодов, не содержащий ни одного периода.
GetFullWhileRecs
Описание
Возвращает связанный список периодов, содержащий единственный период: FirstDate-LastDate.
MakeWhileRecs
Описание
Создаёт связанный список периодов, содержащий один период.
GetNextWhileRec
FUNCTION GetNextWhileRec(Whs TWhileRecs, iIndex PLS_INTEGER := NULL) RETURN PLS_INTEGER;
Описание
Возвращает следующий элемент связного списка. Если iIndex is null, возвращает первый элемент списка.
GetPrevWhileRec
FUNCTION GetPrevWhileRec(Whs TWhileRecs, iIndex PLS_INTEGER := NULL) RETURN PLS_INTEGER;
Описание
Возвращает предыдущий элемент связного списка. Если iIndex is null, возвращает последний элемент списка.
GetNextWhileCount
FUNCTION GetNextWhileCount(Whs TWhileCounts, iIndex PLS_INTEGER := NULL) RETURN PLS_INTEGER;
Описание
Возвращает следующий элемент связного списка. Если iIndex is null, возвращает первый элемент списка.
GetPrevWhileCount
FUNCTION GetPrevWhileCount(Whs TWhileCounts, iIndex PLS_INTEGER := NULL) RETURN PLS_INTEGER;
Описание
Возвращает предыдущий элемент связного списка. Если iIndex is null, возвращает последний элемент списка.
InsertWhileAfter
FUNCTION InsertWhileAfter(Whs IN OUT NOCOPY TWhileRecs, Wh TWhile, iAfter PLS_INTEGER) RETURN PLS_INTEGER;
Описание
Вставляет элемент после элемента с индексом iAfter Если iAfter is null, то новый элемент вставляется в начало списка. Возвращает индекс вновь вставленного элемента.
InsertWhileBefore
FUNCTION InsertWhileBefore(Whs IN OUT NOCOPY TWhileRecs, Wh TWhile, iBefore PLS_INTEGER) RETURN PLS_INTEGER;
Описание
Вставляет элемент перед элементом с индексом iBefore Если iBefore is null, то новый элемент вставляется в конец списка. Возвращает индекс вновь вставленного элемента.
DeleteWhile
PROCEDURE DeleteWhile(Whs IN OUT NOCOPY TWhileRecs, iIndex PLS_INTEGER);
Описание
Удаляет из связного списка TWhileRecs элемент с индексом iIndex.
InsertWhileCountAfter
FUNCTION InsertWhileCountAfter(Whs IN OUT NOCOPY TWhileCounts, Wh TWhile, iCount PLS_INTEGER, iAfter PLS_INTEGER) RETURN PLS_INTEGER;
Описание
Вставляет элемент после элемента с индексом iAfter Если iAfter is null, то новый элемент вставляется в начало списка. Возвращает индекс вновь вставленного элемента.
InsertWhileCountBefore
FUNCTION InsertWhileCountBefore(Whs IN OUT NOCOPY TWhileCounts, Wh TWhile, iCount PLS_INTEGER, iBefore PLS_INTEGER) RETURN PLS_INTEGER;
Описание
Вставляет элемент перед элементом с индексом iBefore Если iBefore is null, то новый элемент вставляется в конец списка. Возвращает индекс вновь вставленного элемента.
DeleteWhileCount
PROCEDURE DeleteWhileCount(Whs IN OUT NOCOPY TWhileCounts, iIndex PLS_INTEGER);
Описание
Удаляет из связного списка TWhileCounts элемент с индексом iIndex.
AddWhileToRecs
Описание
Добавляет период Wh в связный список периодов Whs. При необходимости происходит объединение интервалов.
AddWhileToRecs
Описание
Версия функции с датами вместо периода.
AddWhileToCounts
Описание
Добавляет период к списку WhileCounts. При необходимости происходит разбиение интервалов.
SplitWhileCount
FUNCTION SplitWhileCount(Whs IN OUT NOCOPY TWhileCounts, iIndex PLS_INTEGER, d DATE, bIncluding BOOLEAN) RETURN PLS_INTEGER;
Описание
Разбивает интервал с индексом iIndex на два интервала по дате d и вставляет второй из них после первого. Если bIncluding=True, то d включается в первый интервал, в противном случае - во второй. Возвращает индекс вновь вставленного интервала или null, если изменения не производились.
UnionWhileRecs
Описание
Находит объединение периодов двух связных списков и возвращает периоды в wResult.
InvertWhileRecs
Описание
Вычисляет инверсию w и результат помещает в wResult.
IntersectWhileRecs
Описание
Находит пересечение периодов двух связных списков и возвращает периоды в wResult.
SubtractWhileRecs
Описание
Находит разность w1-w2 и возвращает периоды в wResult.
AddWhileRecsToWhileCounts
Описание
Добавляет список периодов к списку WhileCounts.
AddWhileCountsToWhileRecs
PROCEDURE AddWhileCountsToWhileRecs(WhileCounts TWhileCounts, Whs IN OUT NOCOPY TWhileRecs, iValue PLS_INTEGER, iCondition PLS_INTEGER := 0);
Описание
Добавляет интервалы из WhileCounts, удовлетворяющие условию, к списку интервалов. При необходимости происходит объединение интервалов.
Условия:
-1: iCount != iValue
0: iCount = iValue (по умолчанию)
1: iCount < iValue
2: iCount ⇐ iValue
3: iCount > iValue
4: iCount >= iValue.
WhileRecsToStr
Описание
Преобразует список периодов в строку, разделяя даты запятой.
WhileCountsToStr
Описание
Преобразует список TWhileCounts в строку.
GetWhileRecsLength
Описание
Возвращает суммарную длину периодов в списке в днях. Если список периодов пуст, возвращает 0.
GetPeriodPartValue
FUNCTION GetPeriodPartValue(dDateFrom DATE, dDateTo DATE, wwIncludedWhileRecs IN TWhileRecs, wwExcludedWhileRecs IN TWhileRecs, iIgnoreEmptyIncludedRecs PLS_INTEGER) RETURN NUMBER;
Описание
Возвращает долю периодов wwIncludedWhileRecs за вычетом периодов wwExcludedWhileRecs в периоде dDateFrom-dDateTo. Учитывается только та часть периодов wwIncludedWhileRecs, которая лежит в пределах периода dDateFrom-dDateTo.
GetDateForTermReached
Описание
Возвращает для списка периодов дату, на которую накапливается период заданной продолжительности.
Разное
RawToGUIDStr
FUNCTION RawToGUIDStr(rGUID RAW, iAddBrackets PLS_INTEGER := 1) RETURN VARCHAR2 deterministic;
Описание
Преобразует GUID, представленный в виде RAW-значения, в строку GUID вида {xxxxxxxx-xxxx-xxxx-xxxxxxxxxxxxxxxx}.
Параметры:
- rGUID - значение GUID;
- iIncludeBrackets - добавлять ли к выходному значению скобки ”{” и ”}” (0/1).
При обнаружении ошибки в значении rRaw вызывает exception.
CompareIntegers
FUNCTION CompareIntegers(i1 PLS_INTEGER, i2 PLS_INTEGER, iNullsLast PLS_INTEGER := 1) RETURN PLS_INTEGER deterministic;
Описание
Сравнивает два целых на больше/меньше. Возвращает отрицательное число, если i1<i2, 0, если i1=i2, положительное число, если i1>i2. При iNullsLast=0 null считается меньше любого числа, иначе больше любого числа; null=null.
CompareDates
FUNCTION CompareDates(d1 DATE, d2 DATE, iNullsLast PLS_INTEGER := 1) RETURN PLS_INTEGER deterministic;
Описание
Сравнивает две даты на больше/меньше. Возвращает отрицательное число, если d1<d2, 0, если d1=d2, положительное число, если d1>d2. При iNullsLast=0 null считается меньше любого числа, иначе больше любого числа; null=null.
CompareNumbers
FUNCTION CompareNumbers(n1 NUMBER, n2 NUMBER, iNullsLast PLS_INTEGER := 1) RETURN PLS_INTEGER deterministic;
Описание
Сравнивает два вещественных числа на больше/меньше. Возвращает отрицательное число, если n1<n2, 0, если n1=n2, положительное число, если n1>n2. При iNullsLast=0 null считается меньше любого числа, иначе больше любого числа; null=null.
CompareStrings
FUNCTION CompareStrings(s1 VARCHAR2, s2 VARCHAR2, iNullsLast PLS_INTEGER := 1) RETURN PLS_INTEGER deterministic;
Описание
Сравнивает два строковых значения на больше/меньше. Возвращает отрицательное число, если s1<s2, 0, если s1=s2, положительное число, если s1>s2. При iNullsLast=0 null считается меньше любого числа, иначе больше любого числа; null=null.
TruncToNSec
FUNCTION TruncToNSec(d DATE, N PLS_INTEGER) RETURN DATE deterministic;
Описание
Усекает количество секунд в дате до ближайшего меньшего числа, кратного N.
DaysInMonth
Описание
Возвращает количество дней в текущем месяце даты.
GetLastNumberForGlobalSeq
FUNCTION GetLastNumberForGlobalSeq(iGSQID PLS_INTEGER) RETURN PLS_INTEGER;
Описание
Возвращает последний ID записи из таблицы для указанной глобальной последовательности.
GetLastNumberForRgnSeq
FUNCTION GetLastNumberForRgnSeq(iRSQID PLS_INTEGER, iRegionID PLS_INTEGER) RETURN PLS_INTEGER;
Описание
Возвращает последний ID записи из таблицы для указанной региональной последовательности.
GetGlobalSeqID
FUNCTION GetGlobalSeqID(sSequenceName VARCHAR2) RETURN PLS_INTEGER;
Описание
Возвращает следующее значение глобальной последовательности.
GetRgnSeqID
FUNCTION GetRgnSeqID(iRegionID PLS_INTEGER, sSeqNameSuffix VARCHAR2) RETURN PLS_INTEGER;
Описание
Возвращает следующее значение региональной последовательности с суффиксом sSeqNameSuffix.
GetRgnSeqIDs
FUNCTION GetRgnSeqIDs(iRegionID PLS_INTEGER, sSeqNameSuffix VARCHAR2, iCount PLS_INTEGER, sSrcTable VARCHAR2 := 'u_dummy') RETURN TIntegers;
Описание
Возвращает массив из iCount следующих значений региональной SEQUENCE с суффиксом sSeqNameSuffix вида 'rpdi_id'
- iRegionID - регион
- sSeqNameSuffix - суффикс последовательности
- iCount - необходимое количество значений
- sSrcTable - таблица, содержащая достаточное количество строк.
GetFreeID
FUNCTION GetFreeID(sTableName VARCHAR2, iRegionID PLS_INTEGER := NULL, sRegionIDField VARCHAR2 := 'region_id') RETURN PLS_INTEGER;
Описание
Возвращает следующее свободное значение поля id указанной таблицы. Если iRegionID<>null, ищет только в пределах
- района (sRegionIDField - имя поля района).
GetUniqueValueStr
FUNCTION GetUniqueValueStr(sValue VARCHAR2, sTableName VARCHAR2, sColumn VARCHAR2, sWhere VARCHAR2, sDupePrefix VARCHAR2 := 'Копия', iForcePrefix PLS_INTEGER := 0) RETURN VARCHAR2;
Описание
Возвращает уникальное строковое значение для столбца sColumn таблицы sTable, беря за основу значение sValue. Если такое значение уже существует, к нему добавляется префикс sDupePrefix. Если такое значение также существует, после префикса добавляется строка « #nn», где nn - целое число>1, которое подбирается последовательно до получения уникального значения. sWhere - условие, накладываемое на таблицу (может отсутствовать). Если iForcePrefix!=0, то префикс sDupePrefix добавляется, даже если значение sValue в таблице изначально отсутствует.
FormatUDCMFields
FUNCTION FormatUDCMFields(sUserCreated VARCHAR2, sUserModified VARCHAR2, dCreated DATE, dModified DATE) RETURN VARCHAR2 deterministic;
Описание
Форматирует и возвращает на основе полей user/date_created/modified одну строку последнего изменения записи вида
- «USER, 01.01.0001 00:00».
FormatUserDate
Описание
Форматирует и возвращает на основе имени пользователя и даты строку вида «USER, 01.01.0001 00:00» (например, для информации о создании или изменении записи БД).
IntegerListToStr
Описание
Преобразует список целых чисел в строку, разделённую разделителем sDelim.
IntegersToStr
Описание
Преобразует список целых чисел в строку, разделённую разделителем sDelim.
EnumIntegers
Описание
Возвращает список индексов элементов списка.
IntegersToIntegerSet
Описание
Преобразует список целых чисел в набор целых чисел, где индекс=значение элемента исходного списка, значение=1.
DatesToIntegerSet
Описание
Преобразует список дат в набор целых чисел, где индекс=дата-01.01.0001, значение=1.
IntegerSetToDates
FUNCTION IntegerSetToDates(Ints IN TIntegers, iSortAscending PLS_INTEGER := 1) RETURN TDates;
Описание
Преобразует набор целых чисел, где индекс=дата-01.01.0001 (значение игнорируется), в отсортированный список дат.
StrToNamedStringValues
FUNCTION StrToNamedStringValues(sStr VARCHAR2, sDelimiter VARCHAR2 := NULL, sQuoteChar VARCHAR2 := NULL) RETURN uszn.TNamedStringValueList deterministic;
Описание
Перевод текста в список параметров в виде пар name=value. Пары разделяются sDelimiter или переводом строки (Windows или Linux), если sDelimiter не задан. Если задан sQuoteChar, текст пары name=value деквотируется.
NamedStringValuesToStr
FUNCTION NamedStringValuesToStr(List uszn.TNamedStringValueList, sDelimiter VARCHAR2 := CHR(10), sQuoteChar VARCHAR2 := NULL) RETURN VARCHAR2 deterministic;
Описание
Перевод списка параметров в текстовый вид в виде пар name=value. Пары разделяются заданным символом-разделителем. Если задан sQuoteChar, текст пары name=value квотируется.
GetNamedStringValueIdx
FUNCTION GetNamedStringValueIdx(List uszn.TNamedStringValueList, sName VARCHAR2, iStrict PLS_INTEGER) RETURN PLS_INTEGER deterministic;
Описание
Возвращает индекс параметра в списке по его имени.
Параметры:
- List - список имеющихся параметров;
- sName - имя искомого параметра;
- iStrict - определяет поведение при отсутствии в списке параметра с таким именем.
GetNamedStringValue
FUNCTION GetNamedStringValue(List uszn.TNamedStringValueList, sName VARCHAR2, iStrict PLS_INTEGER) RETURN VARCHAR2 deterministic;
Описание
Возвращает значение параметра по его имени в списке.
Параметры:
- List - список имеющихся параметров;
- sName - имя искомого параметра;
- iStrict - определяет поведение при отсутствии в списке параметра с таким именем.
Если параметр в списке имеется, но его значение пустое, возвращает null.
SetNamedStringValue
PROCEDURE SetNamedStringValue(List IN OUT NOCOPY uszn.TNamedStringValueList, sName VARCHAR2, sValue VARCHAR2);
Описание
Устанавливает значение параметра в списке.
Параметры:
- List - список имеющихся параметров;
- sName - имя изменяемого параметра;
- sValue - значение изменяемого параметра.
Если параметр в списке есть, его значение заменяется на новое. Если параметра в списке нет, он добавляется.
Пустое значение (null) также считается значением, удаление параметра из списка не производится. Для удаления
параметра из списка используется pkGen.DeleteNamedStringValue.
DeleteNamedStringValue
Описание
Удаляет значение параметра из списка, если оно там имеется.
Параметры:
- List - список имеющихся параметров;
- sName - имя удаляемого параметра.
Если параметр в списке отсутствует, ничего не происходит.
При удалении параметра в списке появляется “дырка”.
BubbleSort
Описание
Сортирует список пузырьковым методом.