Oracle

Источник данных: внешний OracleEnterprise Edition+

Введение

Oracle можно подключить к NocoBase в качестве внешней базы данных. После подключения NocoBase считывает из Oracle таблицы данных, поля и представления и использует их как таблицы данных внешнего источника.

В отличие от основной базы данных, фактическая структура таблиц внешнего Oracle по-прежнему поддерживается исходной бизнес-системой, клиентом базы данных или скриптами миграции. NocoBase отвечает за чтение структуры, сохранение метаданных полей, настройку блоков страниц, прав доступа, рабочих процессов и API.

ПараметрОписание
Поддерживаемые версииOracle >= 11g.
Коммерческая версияПоддерживается корпоративной редакцией.
Соответствующий плагин@nocobase/plugin-data-source-external-oracle.
Режим подключенияДля Oracle Database 12.1 и более поздних версий обычно используется режим Thin; для версий до 12.1 — режим Thick.

Внешний Oracle подходит для следующих сценариев:

  • Подключение к базе данных Oracle существующих бизнес-систем ERP, MES, WMS, CRM и других
  • Создание интерфейса управления в NocoBase без переноса исторических данных
  • Настройка прав доступа, обработка процессов, исправление данных или создание отчетов для существующих таблиц
  • Продолжение поддержки структуры базы данных со стороны DBA, скриптов миграции или исходной системы
Внимание

Внешний Oracle не является системной базой данных NocoBase. NocoBase не берет на себя резервное копирование, восстановление, миграцию и изменение структуры его таблиц.

Установка плагина

Этот плагин является коммерческим. Подробные сведения об активации см. в руководстве Активация коммерческих плагинов

Если выбран режим подключения Thick, необходимо установить Oracle Client libraries в среде выполнения NocoBase и указать «Client directory» в настройках источника данных.

Установка клиента Oracle

Для Oracle Database 12.1 и более поздних версий обычно используется режим Thin, поэтому дополнительная установка Oracle Client не требуется. Устанавливать Oracle Client libraries в среде выполнения NocoBase необходимо только при подключении к версии Oracle Database до 12.1 или при обязательном использовании режима Thick.

После выбора режима «Thick» в настройках источника данных убедитесь, что машина, на которой работает служба NocoBase, может загрузить Oracle Client.

20241204164359

В среде Linux для установки Oracle Instant Client можно воспользоваться следующим способом:

apt-get update
apt-get install -y unzip wget libaio1
wget https://download.oracle.com/otn_software/linux/instantclient/1925000/instantclient-basic-linux.x64-19.25.0.0.0dbru.zip
unzip instantclient-basic-linux.x64-19.25.0.0.0dbru.zip -d /opt/
echo /opt/instantclient_19_25 > /etc/ld.so.conf.d/oracle-instantclient.conf
ldconfig

Если Oracle Client установлен не в расположение, из которого система загружает библиотеки по умолчанию, укажите каталог клиентских библиотек в поле «Client directory». Например, для приведенного выше способа установки это каталог /opt/instantclient_19_25.

20241204165940

Подсказка

Client directory требуется настраивать только в режиме Thick. В режиме Thin этот параметр не используется. Дополнительные правила инициализации см. в документации по инициализации node-oracledb.

Добавление источника данных

В разделе «Управление источниками данных» нажмите «Add new», выберите Oracle и укажите данные для подключения.

20241204164359

Основные параметры подключения:

ПараметрОписание
Data source nameИдентификатор источника данных, используемый для ссылок на него в блоках страниц, правах доступа, рабочих процессах и API. После создания изменить его нельзя.
Data source display nameНазвание источника данных, отображаемое в интерфейсе. Рекомендуется использовать понятное сотрудникам название, например «ERP Oracle» или «Финансовая БД».
Host / PortАдрес и порт узла Oracle. Порт по умолчанию обычно равен 1521.
ServerNameИмя службы Oracle. Укажите service name, настроенное в конфигурации прослушивателя базы данных.
Username / PasswordУчетные данные для подключения к Oracle. NocoBase считывает таблицы и представления, принадлежащие этому Owner, но не предоставляет доступ к объектам других Owner и не считывает их.
Connection modeРежим подключения к Oracle. Для Oracle Database 12.1 и более поздних версий обычно используется режим Thin; для версий до 12.1 — режим Thick.
Client directoryКаталог Oracle Client libraries для режима Oracle Thick. Настраивать его нужно только при выборе режима Thick.
Table prefixПрефикс имени таблицы. После настройки NocoBase считывает только таблицы и представления с этим префиксом и создает в NocoBase имена таблиц без префикса.
Collections / Add all collectionsОпределяет область подключения. При включении «Add all collections» NocoBase подключает все таблицы и представления в пределах текущих Owner и префикса; после отключения подключаются только объекты, выбранные в «Collections».
Enabled the data sourceОпределяет, включен ли источник данных. После отключения конфигурация источника сохраняется, но блоки страниц, права доступа, рабочие процессы и API больше не могут считывать его данные.
Подсказка

Область подключения в Oracle в основном определяется учетной записью подключения Owner, Table prefix и параметром «Collections». Если в одном экземпляре много объектов, рекомендуется использовать отдельную учетную запись для подключения к нужной бизнес-схеме, чтобы сократить количество нерелевантных объектов, попадающих в NocoBase.

Выбор таблиц данных

После указания данных для подключения можно нажать «Load Collections», чтобы получить список доступных таблиц и представлений Oracle. Результаты загрузки зависят от Owner учетной записи подключения, Table prefix и настроек «Collections».

По умолчанию включен параметр «Add all collections», то есть подключаются все таблицы и представления в текущей области. Если нужно подключить только некоторые объекты, отключите «Add all collections» и выберите нужные таблицы или представления в списке.

add_new_database_configure_load_collection

Внимание

Один внешний источник данных может одновременно подключить не более 500 таблиц или представлений. Если в Oracle много объектов, рекомендуется сначала сузить область с помощью Owner учетной записи подключения, Table prefix или параметра «Collections».

Синхронизация и настройка полей

Структура таблиц внешнего Oracle поддерживается на стороне базы данных. NocoBase не создает поля во внешнем Oracle, не изменяет типы полей и не удаляет реальные поля.

При изменении структуры таблиц на стороне Oracle можно выполнить «Sync from database» в источнике данных, чтобы заново считать метаданные таблиц и полей. Синхронизация обновляет сохраненные в NocoBase таблицы данных, поля, первичные ключи, уникальные ключи и сведения о сопоставлении типов полей, но не удаляет реальные таблицы или данные в Oracle.

После синхронизации полей в NocoBase можно настроить заголовок поля, тип поля (Field type) и компонент поля (Field interface). Если необходимо создать поле связи NocoBase, его метаданные связи также сохраняются в NocoBase; реальные внешние ключи в таблицу Oracle автоматически не добавляются.

Сопоставление типов полей

NocoBase автоматически сопоставляет типы полей Oracle с подходящими Field type и Field interface. Способ отображения в интерфейсе можно изменить в настройках поля.

Основные варианты сопоставления:

Тип поля OracleNocoBase Field typeДоступный Field interface
NUMBERintegerfloatbooleanbigIntunixTimestampsortInteger、Number、Sort、Checkbox、Switch、Select、Radio group。
BINARY_FLOATBINARY_DOUBLEFLOATfloatNumber、Percent。
INTEGERSMALLINTPLSQL_INTEGERintegerbooleansortInteger、Sort、Checkbox、Switch、Select、Radio group。
CHARNCHARVARCHAR2NVARCHAR2stringuuidnanoiddatetimeNoTzInput、Email、Phone、Password、Color、Icon、Select、Radio group、UUID、Nano ID。
LONGNCLOBstringtextInput、Textarea、Markdown、Vditor、Rich text。
CLOBstringInput、Textarea、Rich text。
DATEdatetimeNoTzDate、Time、Created at、Updated at。
TIMESTAMPdatetimeNoTzDate、Time、Created at、Updated at。
TIMESTAMP WITH TIME ZONETIMESTAMP WITH LOCAL TIME ZONEdatetimeTzDate、Time、Created at、Updated at。
ROWIDUROWIDstringtextintegerInput、Textarea、Integer。
JSONjsonJSON。
Внимание

BLOBBFILE и другие типы двоичных объектов автоматически не используются как обычные поля файлов. Если требуется управлять вложениями на страницах, обычно рекомендуется использовать в NocoBase таблицу файлов или поле вложений для сохранения метаданных файлов.

Первичный ключ и уникальный идентификатор записи

Для таблиц данных, используемых блоками страниц для отображения и редактирования, рекомендуется наличие первичного ключа или уникального поля. NocoBase в первую очередь использует первичный ключ как уникальный идентификатор записи.

Если подключается представление, таблица без первичного ключа или таблица с составным первичным ключом, необходимо вручную задать «Record unique key» в настройках таблицы данных. При отсутствии доступного уникального идентификатора блоки страниц могут некорректно просматривать, редактировать или удалять записи.

20260709210948 20260709211004

Связанные ссылки