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

pkXfer.sql

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

Error_NoXferKind

PROCEDURE Error_NoXferKind(iID PLS_INTEGER);

Описание

Вызывает exception «Вид соответствия с ID не существует».

Error_NoXferKind

PROCEDURE Error_NoXferKind(sName VARCHAR2);

Описание

Вызывает 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

PROCEDURE CheckXferKindExists(sName VARCHAR2);

Описание

Проверяет, что вид соответствия с указанным внутренним наименованием (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;