Документація Database Tour | |
Файл відповідностей полів |
Файли відповідностей полів містять відповідності полів джерело-ціль для операцій експорту та імпорту. Використовуйте файли відповідності полів при необхідності вжити одні і ті ж самі відповідності полів більше одного разу. Вони також можуть використовуватися під час експорту даних через командний рядок або файл операцій.
Підтримуються два типи форматів файлів відповідності полів: XML (рекомендований) та текст.
Даний формат є гнучким і розширюваним, тому рекомендується до використання скрізь, де можливо.
Такі файли відповідностей полів можуть бути створені або в діалозі Експорту на кроці Відповідність полів, або вручну з використанням текстового редактора. При створенні файлів вручну майте на увазі, що вони повинні відповідати стандартам XML та містити (при потребі) маркер порядку байтів (BOM) на початку.
Файл містить необов'язкову спільну частину та ряд відповідностей полів. Спільна частина може включати деяку технічну інформацію (наприклад, назву програми та її версію), а також ключові поля для спеціальних випадків експорту до баз даних або скрипта SQL.
Кожна відповідність полів повинна містити 2 частини: для джерела і для цілі.
Частина для джерела має містити атрибут FieldName - назва поля джерела або динамічний вираз.
Частина для цілі може містити змінний набір атрибутів (повинно бути заповнено як мінімум FieldName або FileName):
FieldName
Фізична назва цільового поля (колонки).
Цільові формати: Всі
FieldType
Тип цільового поля (колонки). Для баз даних SQL це повинен бути SQL-тип, що підтримується цільовою базою даних. Для інших баз даних це повинен бути тип, що підтримується цільовою базою даних.
Цільові формати: База даних, SQL
FieldSize
Максимальне число символів текстових полів або максимальна кількість розрядів для полів (колонок), що містять числа з плаваючою точкою.
Цільові формати: База даних, SQL
FieldScale
Кількість розрядів праворуч від десяткової точки для полів (колонок), що містять числа з плаваючою точкою.
Цільові формати: База даних, SQL
FieldNotNull
Значення 1 значить, що поле не приймає значень NULL.
Цільові формати: База даних, SQL
FieldDefaultValue
Визначає значення по замовчанню для поля.
Цільові формати: База даних, SQL
PrimaryKey
Вказує, чи є поле частиною первинного ключа.
Цільові формати: База даних, SQL
FieldSQLSpecification
Визначає повну специфікацію SQL для поля (без імені поля). Див. приклад нижче.
Цільові формати: База даних, SQL
FieldDescription
Визначає опис поля (наразі лише для баз даних Oracle, SQL Server, PostgreSQL, MySQL).
Цільові формати: База даних, SQL
FileName
Вказує шлях до файлу, в якому повинен бути збережений вміст поля джерела. Якщо цей атрибут не пустий, вміст поля джерела буде збережено до окремого файлу, вказаного цим атрибутом. Цільова тека повинна існувати. Шлях до файлу повинен бути динамічним виразом, що повертає унікальний рядок, інакше файл буде перезаписано для кожного експортованого запису. Для картинок з баз даних розширення файлу визначає цільовий формат картинки, тобто можлива конвертація формату картинки. Див. приклад нижче.
Цільові формати: Всі
Увага! Немає попередження про перезапис для цих файлів.
TotalsExpression
Вказує вираз, результат обчислення якого має бути показано в цільовому файлі після експорту всіх записів джерела. Це може бути динамічний або константний вираз.
Цільові формати: Всі, крім База даних, SQL, DBF
Приклад файлу відповідності полів для експорту Access-до-Oracle:
<?xml version="1.0" encoding="UTF-8"?>
<!-- Відповідності Джерело-Ціль для агрегації платежів -->
<FieldMappings>
<Software>Database Tour Pro</Software>
<KeyFields>PAYMENT_ID</KeyFields>
<Items>
<FieldMapping>
<Source>
<FieldName>PaymentId</FieldName>
</Source>
<Target>
<FieldName>PAYMENT_ID</FieldName>
<FieldType>INTEGER</FieldType>
<PrimaryKey>1</PrimaryKey>
</Target>
</FieldMapping>
<FieldMapping>
<Source>
<FieldName>Department</FieldName>
</Source>
<Target>
<FieldName>DEPARTMENT</FieldName>
<FieldType>VARCHAR2</FieldType>
<FieldSize>20</FieldSize>
<FieldDescription>Department Name</FieldDescription>
</Target>
</FieldMapping>
<FieldMapping>
<Source>
<FieldName>ActualityDate</FieldName>
</Source>
<Target>
<FieldName>ACTUALITY_DATE</FieldName>
<FieldType>DATE</FieldType>
<FieldDescription>Date of Payment</FieldDescription>
</Target>
</FieldMapping>
<FieldMapping>
<Source>
<FieldName>PaymentSum</FieldName>
</Source>
<Target>
<FieldName>PAYMENT_SUM</FieldName>
<FieldType>NUMBER</FieldType>
<FieldSize>12</FieldSize>
<FieldScale>2</FieldScale>
<FieldDescription>Payment Amount</FieldDescription>
</Target>
</FieldMapping>
<FieldMapping>
<Source>
<!-- можливі динамічні вирази: -->
<FieldName>vle_expr(0.1 * dataset_field_val(1, 'PaymentSum'))</FieldName>
</Source>
<Target>
<FieldName>COMMISSION_SUM</FieldName>
<FieldType>NUMBER</FieldType>
<FieldSize>12</FieldSize>
<FieldScale>2</FieldScale>
<FieldDefaultValue>0</FieldDefaultValue>
<FieldSQLSpecification>NUMBER(12, 2) DEFAULT 0<
<FieldDescription>Commission Amount</FieldDescription>
</Target>
</FieldMapping>
<FieldMapping>
<Source>
<FieldName>Notes</FieldName>
</Source>
<Target>
<FieldName>NOTES</FieldName>
<FieldType>VARCHAR2</FieldType>
<FieldSize>400</FieldSize>
<FieldSQLSpecification>VARCHAR2(400)</FieldSQLSpecification>
<FieldDescription>Notes regarding the payment</FieldDescription>
<!-- використовуємо унікальне поле PaymentId, що мати унікальний шлях до файлу для кожного запису: -->
<FileName>vle_expr(extract_file_path(target_file_name(1)) + 'notes' + to_string(dataset_field_val(1, 'PaymentId')) + '.txt')</FileName>
</Target>
</FieldMapping>
</Items>
</FieldMappings>
Такі файли складаються з пар НазваПоляДжерела=НазваПоляЦілі, одна відповідність на рядок. Рекомендується, щоб назви полів не містили знаку рівності. Замість назви поля джерела можна використовувати динамічний вираз (див. приклад нижче). Рядки, що починаються на крапку з комою, вважаються коментарем і ігноруються програмою. Допускаються пусті рядки.
Такі файли можуть мати будь-яке розширення, їх можна створювати у будь-якому текстовому редакторі. При створенні файлів майте на увазі, що вони повинні відповідати стандартам XML та містити (при потребі) маркер порядку байтів (BOM) на початку.
Приклад файлу відповідностей полів у текстовому форматі:
;Відповідності Джерело-Ціль для експорту платежів
Department=DEPARTMENT
ActualityDate=ACTUALITY_DATE
PaymentCount=PAYMENT_COUNT
PaymentSum=PAYMENT_SUM
;можливі динамічні вирази:
vle_expr(0.1 * dataset_field_val(1, 'PaymentSum'))=COMMISSION_SUM
Зауваження
Цільовий атрибут FieldName, якщо містить символи, не типові для назв полів цільової бази даних (наприклад, пробіли і т.д.), повинен братися в лапки або квадратні дужки у відповідності до правил цільової бази даних.