Документация iSZN

pkGen.sql

GetLastDate

FUNCTION GetLastDate RETURN DATE deterministic;

Описание

Возвращают LastDate и FirstDate соответственно.

GetFirstDate

FUNCTION GetFirstDate RETURN DATE deterministic;

Сообщения об ошибках

Error_InternalError

PROCEDURE Error_InternalError(sMsg VARCHAR2);

Описание

Вызывает exception «Внутренняя ошибка».

Error_InvalidParameters

PROCEDURE Error_InvalidParameters(sMsg VARCHAR2);

Описание

Вызывает exception «Недопустимые параметры».

Error_UnimplementedFeature

PROCEDURE Error_UnimplementedFeature(sFeatureName VARCHAR2);

Описание

Вызывает exception «Данная возможность не реализована».

Error_NotAUser

PROCEDURE Error_NotAUser(sRequiredUserName VARCHAR2);

Описание

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

InsufficientPrivs

PROCEDURE InsufficientPrivs(sOperation VARCHAR2 := NULL);

Описание

Вызывает exception «Недостаточно привилегий на операцию».

Error_InvalidKeyList

PROCEDURE Error_InvalidKeyList(s VARCHAR2);

Описание

Вызывает exception «Недопустимый список региональных ключей».

Error_InvalidGlobalSeqID

PROCEDURE Error_InvalidGlobalSeqID(iID PLS_INTEGER);

Описание

Вызывает exception «Глобальная последовательность не найдена».

Error_InvalidRgnSeqID

PROCEDURE Error_InvalidRgnSeqID(iID PLS_INTEGER);

Описание

Вызывает exception «Региональная последовательность не найдена».

Работа со строками

GetDBCharset

FUNCTION GetDBCharset RETURN VARCHAR2;

Описание

Возвращает наименование текущей кодировки в БД.

FixLineBreaksLinux

FUNCTION FixLineBreaksLinux(s VARCHAR2) RETURN VARCHAR2 deterministic;

Описание

Преобразует переводы строк в формат Linux (LF).

FixLineBreaksWindows

FUNCTION FixLineBreaksWindows(s VARCHAR2) RETURN VARCHAR2 deterministic;

Описание

Преобразует переводы строк в формат Windows (CR+LF).

BracedParamsToBoundVars

FUNCTION BracedParamsToBoundVars(sSQL VARCHAR2, Params uszn.TStringList30) RETURN VARCHAR2;

Описание

Заменяет параметры в фигурных скобках на binded-параметры.
Параметры:

  • sSQL - SQL-выражение, содержащее параметры в фигурных скобках;
  • Params - список имён параметров, которые требуется заменять.

TrimWhitespace

FUNCTION TrimWhitespace(s VARCHAR2, sWhitespaceChars VARCHAR2 := ' '||Chr(9)||Chr(10)||Chr(13)) RETURN VARCHAR2 deterministic;

Описание

Удаляет ведущие и терминирующие символы пробелов.

RemoveLastOrderBy

FUNCTION RemoveLastOrderBy(sSQL VARCHAR2) RETURN VARCHAR2 deterministic;

Описание

Удаляет последнее выражение order by из SQL-оператора select.

Quote

FUNCTION Quote(s VARCHAR2, sQuoteChar VARCHAR2 := '''') RETURN VARCHAR2 deterministic;

Описание

Заключает строку в указанный символ кавычки, дублируя также встречающиеся символы кавычки.

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

FUNCTION ConcWords(s1 VARCHAR2, s2 VARCHAR2) RETURN VARCHAR2 deterministic;

Описание

Если s1 и s2 не пустые, возвращает s1||s2, иначе - пустую строку.

ConcWordsSpc

FUNCTION ConcWordsSpc(s1 VARCHAR2, s2 VARCHAR2) RETURN VARCHAR2 deterministic;

Описание

Если s1 и s2 не пустые, возвращает s1||' '||s2, иначе - s1||s2.

ConcWordsDelim

FUNCTION ConcWordsDelim(s1 VARCHAR2, s2 VARCHAR2, sDelim VARCHAR2) RETURN VARCHAR2 deterministic;

Описание

Если 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

FUNCTION CurrencyToWords(nCurrency NUMBER) RETURN VARCHAR2 deterministic;

Описание

Возвращает сумму прописью в виде: «столько-то руб. 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

FUNCTION DateToSQLExpr(d DATE) RETURN VARCHAR2 deterministic;

Описание

Преобразует дату в строку вида 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

FUNCTION StripRgnPrefix(s VARCHAR2) RETURN VARCHAR2;

Описание

Возвращает исходную строку без регионального префикса; если префикс в строке отсутствует, она возвращается без изменений.

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

PROCEDURE CLOBAppend(sTarget IN OUT NOCOPY CLOB, sValue VARCHAR2);

Описание

Добавляет строку sValue к CLOB.

BLOBAppend

PROCEDURE BLOBAppend(bTarget IN OUT NOCOPY BLOB, rValue RAW);

Описание

Добавляет данные к BLOB.

CLOBToBLOB

FUNCTION CLOBToBLOB(cSrc CLOB, sDestCharset VARCHAR2 := NULL) RETURN BLOB;

Описание

Преобразует CLOB в BLOB.
Параметры:

  • cSrc - исходные данные;
  • sDestCharset - кодировка, в которой необходимо закодировать данные; по умолчанию сохраняется кодировка в БД.

BLOBToCLOB

FUNCTION BLOBToCLOB(bSrc BLOB, sSrcCharset VARCHAR2 := NULL) RETURN CLOB;

Описание

Преобразует BLOB в CLOB.
Параметры:

  • bSrc - исходные данные;
  • sSrcCharset - кодировка исходных данных; по умолчанию считается, что кодировка совпадает с кодировкой БД.

BLOBToHex

FUNCTION BLOBToHex(bSrc BLOB) RETURN CLOB;

Описание

Преобразует 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

FUNCTION DateIntervalToStr(nDelta NUMBER) RETURN VARCHAR2 deterministic;

Описание

Возвращает интервал времени в днях в виде текста, например 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

FUNCTION ParseIntegerList(sList VARCHAR2) RETURN uszn.TIntegerList;

Описание

Получают из списка целых чисел, разделённых запятыми, таблицу целых чисел.

ParseIntegers

FUNCTION ParseIntegers(sList VARCHAR2) RETURN TIntegers;

ParseRgnKeyList

FUNCTION ParseRgnKeyList(sList VARCHAR2) RETURN uszn.TRgnKeyList;

Описание

Получает из списка region_id*1000000+id, разделённых запятыми, таблицу региональных ключей.

ParseRKeyList

FUNCTION ParseRKeyList(sList VARCHAR2) RETURN uszn.TRgnKeyList;

Описание

Получает из списка (region_id,id), разделённых запятыми, таблицу региональных ключей.

ParseRKeyListCLOB

FUNCTION ParseRKeyListCLOB(sList IN CLOB) RETURN uszn.TRgnKeyList;

Описание

То же, но входной параметр - CLOB.

ParseRKeyListRev

FUNCTION ParseRKeyListRev(sList VARCHAR2) RETURN uszn.TRgnKeyList;

Описание

Получает из списка (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

FUNCTION ParseCrDelimitedStr4000List(sList VARCHAR2) RETURN TStrings4000 deterministic;

Описание

Выполняет разбор строковых значений, разделённых переводами строк.

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

PROCEDURE LockRelease(sLockName VARCHAR2);

Описание

Снимает блокировку с именем sLockName.

Работа с именами файлов

ExtractFilenameFromFullname

FUNCTION ExtractFilenameFromFullname(sFullname VARCHAR2) RETURN VARCHAR2 deterministic;

Описание

Извлекает filename.ext из /Path/filename.ext или C:\Path\filename.ext.

ExtractPathFromFullname

FUNCTION ExtractPathFromFullname(sFullname VARCHAR2) RETURN VARCHAR2 deterministic;

Описание

Извлекает /Path/ из /Path/filename.ext или C:\Path\ из C:\Path\filename.ext.

FileExtractName

FUNCTION FileExtractName(sFileName VARCHAR2) RETURN VARCHAR2 deterministic;

Описание

Извлекает filename из filename.ext.

FileExtractExt

FUNCTION FileExtractExt(sFileName VARCHAR2) RETURN VARCHAR2 deterministic;

Описание

Извлекает 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

PROCEDURE AddDate(d DATE, ds IN OUT NOCOPY TDates);

Описание

Добавляет дату к списку дат, если её там нет.

SortDates

PROCEDURE SortDates(ds IN OUT NOCOPY TDates);

Описание

Сортирует список дат: если iMode=0, то по возрастанию, иначе - по убыванию.

GetEffectiveDate

FUNCTION GetEffectiveDate(d DATE, ds TDates) RETURN DATE;

Описание

Возвращает дату из СОРТИРОВАННОГО списка, максимально близкую к 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

FUNCTION PrevDaySafe(d DATE) RETURN DATE deterministic;

Описание

Возвращают соответственно предыдущий и следующий день. Если d равна 01.01.0001 или 31.12.9999 соответственно, то дата возвращается без изменений.

NextDaySafe

FUNCTION NextDaySafe(d DATE) RETURN DATE deterministic;

DatesToStr

FUNCTION DatesToStr(Dates IN TDates, sDelim VARCHAR2 := ',') RETURN VARCHAR2;

Описание

Преобразует список дат в строку, разделённую разделителем sDelim.

DelayToTime

FUNCTION DelayToTime(dBasicTime DATE, iDelaySec PLS_INTEGER) RETURN DATE;

Описание

Возвращает время, отстоящее от исходного на заданную величину.
Параметры:

  • dBasicTime - исходное время;
  • iDelaySec - задержка от исходного времени в секундах.

Работа с периодами

MakeWhile

FUNCTION MakeWhile(d1 DATE, d2 DATE) RETURN TWhile;

Описание

Преобразует две даты в тип 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

FUNCTION UnionWhiles(w1 TWhile, w2 TWhile) RETURN TWhile;

Описание

Производит объединение периодов. Если w1=null, то просто копирует w2 в w1.

IntersectWhiles

FUNCTION IntersectWhiles(w1 TWhile, w2 TWhile) RETURN TWhile;

Описание

Вычисляет пересечение периодов. Если w1=null, то просто копирует w2 в w1, если w2=null - пересечение пустое.

ExcludeWhile

PROCEDURE ExcludeWhile(w1 TWhile, w2 TWhile, wo1 OUT TWhile, wo2 OUT TWhile);

Описание

Исключает период w2 из w1.

InvertWhile

PROCEDURE InvertWhile(w TWhile, wo1 OUT TWhile, wo2 OUT TWhile);

Описание

Инвертирует период w, разбивая его на два: wo1 и wo2.

IsInWhile

FUNCTION IsInWhile(w TWhile, d DATE) RETURN BOOLEAN;

Описание

Возвращает, содержится ли дата d в периоде w.

IsWhileEmpty

FUNCTION IsWhileEmpty(w TWhile) RETURN BOOLEAN;

Описание

Возвращает true, если d1 is null или d2 is null или d2<d1.

WhileToStr

FUNCTION WhileToStr(w TWhile) RETURN VARCHAR2 deterministic;

Описание

Преобразует период в строку, разделяя даты запятой. Если w.d1=null и/или w.d2=null, то даты заменяются на FirstDate и LastDate соответственно.

WhilesToStr

FUNCTION WhilesToStr(w IN TWhiles) RETURN VARCHAR2 deterministic;

Описание

Преобразует список периодов в строку, разделяя периоды запятой.

IntersectWhileTables

PROCEDURE IntersectWhileTables(w1 TWhiles, w2 TWhiles, wResult IN OUT TWhiles);

Описание

Находит пересечение периодов двух таблиц и возвращает периоды в 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

PROCEDURE SplitWhile(wIn IN OUT TWhile, wOut IN OUT TWhile, d DATE, bIncluding BOOLEAN);

Описание

Разбивает интервал 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

FUNCTION ParseWhiles(sWhiles VARCHAR2) RETURN TWhiles;

Описание

Разбирает список периодов в виде «<дата1>,<дата2>,...».

Проверки дат и периодов на допустимость

CheckDate

PROCEDURE CheckDate(d DATE);

Описание

Проверяет, что дата непустая; при ошибке генерирует исключение.

CheckWhile

PROCEDURE CheckWhile(w TWhile);

Описание

Проверяет, что диапазон не является пустым и d2>=d1; при ошибке генерирует исключение.

CheckWhileSequence

PROCEDURE CheckWhileSequence(w1 TWhile, w2 TWhile);

Описание

Проверяет, что диапазоны являются допустимыми и следуют друг за другом; при ошибке генерирует исключение.

Работа со связными списками периодов

GetEmptyWhileRecs

FUNCTION GetEmptyWhileRecs RETURN TWhileRecs;

Описание

Возвращает связанный список периодов, не содержащий ни одного периода.

GetFullWhileRecs

FUNCTION GetFullWhileRecs RETURN TWhileRecs;

Описание

Возвращает связанный список периодов, содержащий единственный период: FirstDate-LastDate.

MakeWhileRecs

FUNCTION MakeWhileRecs(d1 DATE, d2 DATE) RETURN TWhileRecs;

Описание

Создаёт связанный список периодов, содержащий один период.

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

FUNCTION AddWhileToRecs(Whs IN OUT NOCOPY TWhileRecs, Wh TWhile) RETURN PLS_INTEGER;

Описание

Добавляет период Wh в связный список периодов Whs. При необходимости происходит объединение интервалов.

AddWhileToRecs

FUNCTION AddWhileToRecs(Whs IN OUT NOCOPY TWhileRecs, d1 DATE, d2 DATE) RETURN PLS_INTEGER;

Описание

Версия функции с датами вместо периода.

AddWhileToCounts

PROCEDURE AddWhileToCounts(Whs IN OUT NOCOPY TWhileCounts, Wh TWhile);

Описание

Добавляет период к списку 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

PROCEDURE UnionWhileRecs(w1 TWhileRecs, w2 TWhileRecs, wResult IN OUT TWhileRecs);

Описание

Находит объединение периодов двух связных списков и возвращает периоды в wResult.

InvertWhileRecs

PROCEDURE InvertWhileRecs(w TWhileRecs, wResult IN OUT TWhileRecs);

Описание

Вычисляет инверсию w и результат помещает в wResult.

IntersectWhileRecs

PROCEDURE IntersectWhileRecs(w1 TWhileRecs, w2 TWhileRecs, wResult IN OUT TWhileRecs);

Описание

Находит пересечение периодов двух связных списков и возвращает периоды в wResult.

SubtractWhileRecs

PROCEDURE SubtractWhileRecs(w1 TWhileRecs, w2 TWhileRecs, wResult IN OUT TWhileRecs);

Описание

Находит разность w1-w2 и возвращает периоды в wResult.

AddWhileRecsToWhileCounts

PROCEDURE AddWhileRecsToWhileCounts(Whs TWhileRecs, WhileCounts IN OUT NOCOPY TWhileCounts);

Описание

Добавляет список периодов к списку 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

FUNCTION WhileRecsToStr(Whs TWhileRecs, sDelim VARCHAR2 := ',') RETURN VARCHAR2;

Описание

Преобразует список периодов в строку, разделяя даты запятой.

WhileCountsToStr

FUNCTION WhileCountsToStr(Whs TWhileCounts, sDelim VARCHAR2 := ',') RETURN VARCHAR2;

Описание

Преобразует список TWhileCounts в строку.

GetWhileRecsLength

FUNCTION GetWhileRecsLength(Whs TWhileRecs) RETURN NUMBER;

Описание

Возвращает суммарную длину периодов в списке в днях. Если список периодов пуст, возвращает 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

FUNCTION GetDateForTermReached(Periods IN TWhileRecs, nRequiredYears NUMBER) RETURN DATE;

Описание

Возвращает для списка периодов дату, на которую накапливается период заданной продолжительности.

Разное

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

FUNCTION DaysInMonth(d DATE) RETURN NUMBER deterministic;

Описание

Возвращает количество дней в текущем месяце даты.

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

FUNCTION FormatUserDate(sUser VARCHAR2, dDate DATE) RETURN VARCHAR2 deterministic;

Описание

Форматирует и возвращает на основе имени пользователя и даты строку вида «USER, 01.01.0001 00:00» (например, для информации о создании или изменении записи БД).

IntegerListToStr

FUNCTION IntegerListToStr(Ints IN uszn.TIntegerList, sDelim VARCHAR2 := ',') RETURN VARCHAR2;

Описание

Преобразует список целых чисел в строку, разделённую разделителем sDelim.

IntegersToStr

FUNCTION IntegersToStr(Ints IN TIntegers, sDelim VARCHAR2 := ',') RETURN VARCHAR2;

Описание

Преобразует список целых чисел в строку, разделённую разделителем sDelim.

EnumIntegers

FUNCTION EnumIntegers(ii TIntegers) RETURN TIntegers;

Описание

Возвращает список индексов элементов списка.

IntegersToIntegerSet

PROCEDURE IntegersToIntegerSet(Source IN TIntegers, Result IN OUT NOCOPY TIntegers);

Описание

Преобразует список целых чисел в набор целых чисел, где индекс=значение элемента исходного списка, значение=1.

DatesToIntegerSet

FUNCTION DatesToIntegerSet(Dates IN TDates) RETURN TIntegers;

Описание

Преобразует список дат в набор целых чисел, где индекс=дата-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

PROCEDURE DeleteNamedStringValue(List IN OUT NOCOPY uszn.TNamedStringValueList, sName VARCHAR2);

Описание

Удаляет значение параметра из списка, если оно там имеется.
Параметры:

  • List - список имеющихся параметров;
  • sName - имя удаляемого параметра.

Если параметр в списке отсутствует, ничего не происходит.
При удалении параметра в списке появляется “дырка”.

BubbleSort

PROCEDURE BubbleSort(ii IN OUT NOCOPY TIntegers);

Описание

Сортирует список пузырьковым методом.

BubbleSort

PROCEDURE BubbleSort(ss IN OUT NOCOPY TStrings255);