4.2. Подключение к базе данных Oracle #
Следующие директивы управляют доступом к БД Oracle.
ORACLE_HOME#Задаёт переменную окружения
ORACLE_HOMEдля библиотек Oracle, используемых модулем PerlDBD::Oracle.ORACLE_DSN#Задаёт имя источника данных в формате DBI DSN. Например:
dbi:Oracle:host=oradb_host.myhost.com;sid=DB_SID;port=1521
или
dbi:Oracle:DB_SID
Пример для 18c:
dbi:Oracle:host=192.168.1.29;service_name=pdb1;port=1521
Для использования второй нотации необходимо объявить SID в файле
$ORACLE_HOME/network/admin/tnsnames.oraили в пути, указанном в переменной окруженияTNS_ADMIN.ORACLE_DSNORACLE_PWD#Задают имя пользователя и пароль для подключения к БД Oracle. Обратите внимание, что лучше входить в систему с правами суперпользователя Oracle во избежание проблем доступа во время сканирования базы данных и пропуска данных.
Если не задать пароль в
ORACLE_PWDи установить Perl-модульTerm::ReadKey, ora2pgpro запросит пароль интерактивно. Если имя пользователя не задано вORACLE_USER, его тоже нужно будет задать интерактивно.Чтобы подключиться к локальному экземпляру Oracle с правами
SYSDBA, необходимо задать дляORACLE_USERзначение/и пустой пароль.USER_GRANTS#Задайте для этого параметра значение 1, если вы подключаетесь к БД Oracle как простой пользователь без права извлекать данные из таблиц
DBA_. Будут использоваться таблицыALL_.Предупреждение: при использовании типа экспорта
GRANTнеобходимо задать для этого параметра значение 0, в противном случае он работать не будет.TRANSACTION#Эту директиву можно использовать, чтобы изменить уровень изоляции по умолчанию для экспортируемых транзакций. По умолчанию задаётся сериализуемый уровень изоляции для сохранения целостности данных. Допустимые значения директивы
- readonly: 'SET TRANSACTION READ ONLY',
- readwrite: 'SET TRANSACTION READ WRITE',
- serializable: 'SET TRANSACTION ISOLATION LEVEL SERIALIZABLE'
- committed: 'SET TRANSACTION ISOLATION LEVEL READ COMMITTED',
ORA_INITIAL_COMMAND#Эту директиву можно использовать для отправки начальных команд в Oracle сразу после подключения, например, чтобы разблокировать политику для чтения объектов или установить параметры сеанса. Директиву можно задавать несколько раз.