Документация iSZN
pkXfer.sql
Сообщения об ошибках
Error_NoXferKind
PROCEDURE Error_NoXferKind(iID PLS_INTEGER);
Описание
Вызывает exception «Вид соответствия с ID не существует».
Error_NoXferKind
Описание
Вызывает exception «Вид соответствия с наименованием ... не существует».
Error_NoMapping
PROCEDURE Error_NoMapping(iKindID PLS_INTEGER, iIntRgnID PLS_INTEGER := NULL, iIntID PLS_INTEGER := NULL, iExtRgnID PLS_INTEGER := NULL, iExtID PLS_INTEGER := NULL, sExtCode VARCHAR2 := NULL);
Описание
Вызывает exception «Запись соответствия не найдена».
Error_TooManyMappings
PROCEDURE Error_TooManyMappings(iKindID PLS_INTEGER, iIntRgnID PLS_INTEGER := NULL, iIntID PLS_INTEGER := NULL, iExtRgnID PLS_INTEGER := NULL, iExtID PLS_INTEGER := NULL, sExtCode VARCHAR2 := NULL);
Описание
Вызывает exception «Найдено более одной записи соответствия».
Проверки
CheckXferKindExists
PROCEDURE CheckXferKindExists(iID PLS_INTEGER);
Описание
Проверяет, что вид соответствия с указанным ID существует.
CheckXferKindExists
Описание
Проверяет, что вид соответствия с указанным внутренним наименованием (case-insensitive) существует.
Работа с видами соответствия
GetXferKindName
FUNCTION GetXferKindName(iID PLS_INTEGER, iNameKind PLS_INTEGER, iStrict PLS_INTEGER) RETURN VARCHAR2;
Описание
Возвращает наименование указанного вида обмена данными.
Параметры:
- iID - ID вида соответствия;
- iNameKind - вид наименования (0-системное, 1-отображаемое);
- iStrict - определяет поведение при отсутствии записи.
GetXferKindID
FUNCTION GetXferKindID(sName VARCHAR2, iStrict PLS_INTEGER := 0) RETURN PLS_INTEGER;
Описание
Возвращает ID вида соответствия по системному наименованию (case-insensitive). iStrict определяет поведение при отсутствии записи.
SetXferKindID
FUNCTION SetXferKindID(sName VARCHAR2, sDescription VARCHAR2) RETURN PLS_INTEGER;
Описание
Создаёт запись вида соответствия или обновляет описание существующей записи с таким же наименованием. Возвращает ID новой или существующей записи.
Получение данных из таблицы соответствия
GetMappingDescription
FUNCTION GetMappingDescription(iKindID PLS_INTEGER, iIntRgnID PLS_INTEGER := NULL, iIntID PLS_INTEGER := NULL, iExtRgnID PLS_INTEGER := NULL, iExtID PLS_INTEGER := NULL, sExtCode VARCHAR2 := NULL) RETURN VARCHAR2;
Описание
Возвращает описание записи соответствия. Выводится описание только тех элементов, значение которых отлично от null.
GetExternalID
FUNCTION GetExternalID(iKindID PLS_INTEGER, iIntID PLS_INTEGER, iIntRgnID PLS_INTEGER := NULL, iExtRgnID PLS_INTEGER := NULL, iStrict PLS_INTEGER := 0) RETURN PLS_INTEGER;
Описание
Возвращает ID внешнего ключа по внутреннему ключу.
Параметры:
- iKindID - ID вида соответствия данных;
- iIntID - ID внутреннего ключа;
- iIntRgnID - ID района внутреннего ключа (если null, то район внутреннего ключа игнорируется);
- iExtRgnID - ID района внешнего ключа (если null, то район внешнего ключа игнорируется);
- iStrict - определяет поведение при отсутствии данных и при неоднозначном соответствии.
GetExternalCode
FUNCTION GetExternalCode(iKindID PLS_INTEGER, iIntID PLS_INTEGER, iIntRgnID PLS_INTEGER := NULL, iExtRgnID PLS_INTEGER := NULL, iStrict PLS_INTEGER := 0) RETURN VARCHAR2;
Описание
Возвращает код внешней записи по внутреннему ключу.
Параметры:
- iKindID - ID вида соответствия данных;
- iIntID - ID внутреннего ключа;
- iIntRgnID - ID района внутреннего ключа (если null, то район внутреннего ключа игнорируется);
- iExtRgnID - ID района внешнего ключа (если null, то район внешнего ключа игнорируется);
- iStrict - определяет поведение при отсутствии данных и при неоднозначном соответствии.
GetExternalName
FUNCTION GetExternalName(iKindID PLS_INTEGER, iIntID PLS_INTEGER, iIntRgnID PLS_INTEGER, iExtID PLS_INTEGER, iExtRgnID PLS_INTEGER, iStrict PLS_INTEGER := 0) RETURN VARCHAR2;
Описание
Возвращает наименование внешнего ключа по внутреннему и внешнему ключам.
Параметры:
- iKindID - ID вида соответствия данных;
- iIntID, iIntRgnID - внутренний ключ;
- iExtID, iExtRgnID - внешний ключ;
- iStrict - определяет поведение при отсутствии данных.
GetExternalKey
FUNCTION GetExternalKey(iKindID PLS_INTEGER, iIntID PLS_INTEGER, iIntRgnID PLS_INTEGER, iID OUT PLS_INTEGER, iRgnID OUT PLS_INTEGER, iStrict PLS_INTEGER := 0) RETURN PLS_INTEGER;
Описание
Получает внешний ключ по внутреннему ключу.
Параметры:
- iKindID - ID вида соответствия данных;
- iIntID, iIntRgnID - внутренний ключ;
- iID, iRgnID - внешний ключ (выходные параметры);
- iStrict - определяет поведение при отсутствии записи соответствия и при неоднозначном соответствии.
Возвращает:
- при iStrict=0: 0 - при отсутствии соответствия; 1 - в случае успешного получения; 2 - в случае неоднозначного соответствия;
- при iStrict=1: 1 - в случае успешного получения; иначе возникает exception.
Если функция вернула значение, отличное от 1, значение out-параметров не определено.
GetExternalValue
FUNCTION GetExternalValue(iKindID PLS_INTEGER, iIntID PLS_INTEGER, iIntRgnID PLS_INTEGER, iValue OUT PLS_INTEGER, iRgnFactor PLS_INTEGER := 1000000, iStrict PLS_INTEGER := 0) RETURN PLS_INTEGER;
Описание
Аналогична предыдущей, но получает value ключа: Value ← region_id*iRegionFactor+id.
GetInternalID
FUNCTION GetInternalID(iKindID PLS_INTEGER, iExtID PLS_INTEGER, iExtRgnID PLS_INTEGER := NULL, iIntRgnID PLS_INTEGER := NULL, iStrict PLS_INTEGER := 0) RETURN PLS_INTEGER;
Описание
Возвращает ID внутреннего ключа по внешнему ключу.
Параметры:
- iKindID - ID вида соответствия данных;
- iExtID - ID внешнего ключа;
- iExtRgnID - ID района внешнего ключа (если null, то район внешнего ключа игнорируется);
- iIntRgnID - ID района внутреннего ключа (если null, то район внутреннего ключа игнорируется);
- iStrict - определяет поведение при отсутствии данных и при неоднозначном соответствии.
GetInternalName
FUNCTION GetInternalName(iKindID PLS_INTEGER, iIntID PLS_INTEGER, iIntRgnID PLS_INTEGER, iExtID PLS_INTEGER, iExtRgnID PLS_INTEGER, iStrict PLS_INTEGER := 0) RETURN VARCHAR2;
Описание
Возвращает наименование внутреннего ключа по внутреннему и внешнему ключам.
Параметры:
- iKindID - ID вида соответствия данных;
- iIntID, iIntRgnID - внутренний ключ;
- iExtID, iExtRgnID - внешний ключ;
- iStrict - определяет поведение при отсутствии данных.
GetInternalIDByExtCode
FUNCTION GetInternalIDByExtCode(iKindID PLS_INTEGER, sExtCode VARCHAR2, iExtRgnID PLS_INTEGER := NULL, iIntRgnID PLS_INTEGER := NULL, iStrict PLS_INTEGER := 0) RETURN PLS_INTEGER;
Описание
Возвращает ID внутреннего ключа по коду внешней записи (case-sensitive).
Параметры:
- iKindID - ID вида соответствия данных;
- sExtCode - код внешней записи;
- iExtRgnID - ID района внешнего ключа (если null, то район внешнего ключа игнорируется);
- iIntRgnID - ID района внутреннего ключа (если null, то район внутреннего ключа игнорируется);
- iStrict - определяет поведение при отсутствии данных и при неоднозначном соответствии.
GetInternalKey
FUNCTION GetInternalKey(iKindID PLS_INTEGER, iExtID PLS_INTEGER, iExtRgnID PLS_INTEGER := NULL, iID OUT PLS_INTEGER, iRgnID OUT PLS_INTEGER, iStrict PLS_INTEGER := 0) RETURN PLS_INTEGER;
Описание
Получает внутренний ключ по внешнему ключу или ID.
Параметры:
- iKindID - ID вида соответствия данных;
- iExtID - ID внешнего ключа;
- iExtRgnID - ID района внешнего ключа (если null, то район внешнего ключа игнорируется);
- iID, iRgnID - внутренний ключ (выходные параметры);
- iStrict - определяет поведение при отсутствии записи соответствия и при неоднозначном соответствии.
Возвращает:
- при iStrict=0: 0 - при отсутствии соответствия; 1 - в случае успешного получения; 2 - в случае неоднозначного соответствия;
- при iStrict=1: 1 - в случае успешного получения; иначе возникает exception.
Если функция вернула значение, отличное от 1, значение out-параметров не определено.
GetInternalKeyByExtCode
FUNCTION GetInternalKeyByExtCode(iKindID PLS_INTEGER, sExtCode VARCHAR2, iExtRgnID PLS_INTEGER := NULL, iID OUT PLS_INTEGER, iRgnID OUT PLS_INTEGER, iStrict PLS_INTEGER := 0) RETURN PLS_INTEGER;
Описание
Получает внутренний ключ по коду внешней записи.
Параметры:
- iKindID - ID вида соответствия данных;
- sExtCode - код внешней записи;
- iExtRgnID - ID района внешнего ключа (если null, то район внешнего ключа игнорируется);
- iID, iRgnID - внутренний ключ (выходные параметры);
- iStrict - определяет поведение при отсутствии записи соответствия и при неоднозначном соответствии.
Возвращает:
- при iStrict=0: 0 - при отсутствии соответствия; 1 - в случае успешного получения; 2 - в случае неоднозначного соответствия;
- при iStrict=1: 1 - в случае успешного получения; иначе возникает exception.
Если функция вернула значение, отличное от 1, значение out-параметров не определено.
GetInternalValue
FUNCTION GetInternalValue(iKindID PLS_INTEGER, iExtID PLS_INTEGER, iExtRgnID PLS_INTEGER := NULL, iValue OUT PLS_INTEGER, iRgnFactor PLS_INTEGER := 1000000, iStrict PLS_INTEGER := 0) RETURN PLS_INTEGER;
Описание
Аналогична GetInternalKey, но в выходной параметр помещается slurp-ключ.
GetInternalValueByExtCode
FUNCTION GetInternalValueByExtCode(iKindID PLS_INTEGER, sExtCode VARCHAR2, iExtRgnID PLS_INTEGER := NULL, iValue OUT PLS_INTEGER, iRgnFactor PLS_INTEGER := 1000000, iStrict PLS_INTEGER := 0) RETURN PLS_INTEGER;
Описание
Аналогична GetInternalKeyByExtCode, но в выходной параметр помещается slurp-ключ.
Запись в таблицу соответствия
SetExtToIntData
PROCEDURE SetExtToIntData(iKindID PLS_INTEGER, iExtID PLS_INTEGER, iExtRgnID PLS_INTEGER, iIntID PLS_INTEGER, iIntRgnID PLS_INTEGER, sExtCode VARCHAR2 := NULL, sExtName VARCHAR2 := NULL, sIntName VARCHAR2 := NULL);
Описание
Находит внутренний ключ, соответствующий указанному внешнему ключу, и обновляет его, а также ext_code, int_name и ext_name. Если соответствия не найдено, создаётся новая запись. Если существует неоднозначное соответствие, возникает exception.
SetExtToIntValue
PROCEDURE SetExtToIntValue(iKindID PLS_INTEGER, iExtID PLS_INTEGER, iExtRgnID PLS_INTEGER, iIntValue PLS_INTEGER, sExtCode VARCHAR2 := NULL, sExtName VARCHAR2 := NULL, sIntName VARCHAR2 := NULL, iRgnFactor PLS_INTEGER := 1000000);
Описание
Аналогична предыдущей. Производит автоматическое декодирование: Value → region_id*iRegionFactor+id.
SetIntToExtData
PROCEDURE SetIntToExtData(iKindID PLS_INTEGER, iIntID PLS_INTEGER, iIntRgnID PLS_INTEGER, iExtID PLS_INTEGER, iExtRgnID PLS_INTEGER, sIntName VARCHAR2 := NULL, sExtCode VARCHAR2 := NULL, sExtName VARCHAR2 := NULL);
Описание
Находит внешний ключ, соответствующий указанному внутреннему ключу, и обновляет его, а также ext_code, int_name и ext_name. Если соответствия не найдено, создаётся новая запись. Если существует неоднозначное соответствие, возникает exception.
SetIntToExtValue
PROCEDURE SetIntToExtValue(iKindID PLS_INTEGER, iIntID PLS_INTEGER, iIntRgnID PLS_INTEGER, iExtValue PLS_INTEGER, sIntName VARCHAR2 := NULL, sExtCode VARCHAR2 := NULL, sExtName VARCHAR2 := NULL, iRgnFactor PLS_INTEGER := 1000000);
Описание
Аналогична предыдущей. Производит автоматическое декодирование: Value → region_id*iRegionFactor+id.
DeleteExternalKeys
PROCEDURE DeleteExternalKeys(iKindID PLS_INTEGER, iExtID PLS_INTEGER, iExtRgnID PLS_INTEGER);
Описание
Удаляет из таблицы соответствия записи, соответствующие указанному внешнему ключу.
DeleteInternalKeys
PROCEDURE DeleteInternalKeys(iKindID PLS_INTEGER, iIntID PLS_INTEGER, iIntRgnID PLS_INTEGER);
Описание
Удаляет из таблицы соответствия записи, соответствующие указанному внутреннему ключу.
Работа с таблицами соответствия «старого стиля»: dic_external_to_simple_data и dic_simple_dic_data
ExtToSimpleData
FUNCTION ExtToSimpleData(iExtID PLS_INTEGER, iExtRgnID PLS_INTEGER, iDictID PLS_INTEGER, iID OUT PLS_INTEGER, iRgnID OUT PLS_INTEGER) RETURN PLS_INTEGER;
Описание
Декодируют Value или (id, region_id) из внешнего справочника во внутренний. Возвращает 1 при успешном завершении, 0 при ошибке. Если функция вернула 0, значение out-параметров неопределено. (id, region_id) → (id, region_id).
ExtToSimpleValue
FUNCTION ExtToSimpleValue(iExtID PLS_INTEGER, iExtRgnID PLS_INTEGER, iDictID PLS_INTEGER, iValue OUT PLS_INTEGER, iRgnFactor PLS_INTEGER := 1000000) RETURN PLS_INTEGER;
Описание
(id, region_id) → value.
ExtValueToSimpleData
FUNCTION ExtValueToSimpleData(iExtValue PLS_INTEGER, iDictID PLS_INTEGER, iID OUT PLS_INTEGER, iRgnID OUT PLS_INTEGER, iRgnFactor PLS_INTEGER := 1000000) RETURN PLS_INTEGER;
Описание
value → (id, region_id).
ExtValueToSimpleValue
FUNCTION ExtValueToSimpleValue(iExtValue PLS_INTEGER, iDictID PLS_INTEGER, iValue OUT PLS_INTEGER, iRgnFactor PLS_INTEGER := 1000000) RETURN PLS_INTEGER;
Описание
value → value.
GetExtIDForSimpleData
FUNCTION GetExtIDForSimpleData(iSimpleID PLS_INTEGER, iSimpleRgnID PLS_INTEGER, iExtRgnID PLS_INTEGER) RETURN PLS_INTEGER;
GetExtIDForSimpleValue
FUNCTION GetExtIDForSimpleValue(iSimpleValue PLS_INTEGER, iExtRgnID PLS_INTEGER, iRgnFactor PLS_INTEGER := 1000000) RETURN PLS_INTEGER;