оракле?
Суть задачи: У нас до недавнего времени было 2 бд(физически, вообще разные сети... но не суть): продовская бд, и тестовая. Есть шедулер которые выполняет некие скрипты и в них мы определяли бд так select name from v$database. Теперь нам сделали еще один инстанс в тестовой бд(якобы develop окружение) и возникла проблема как делать различия между инстансами в тестовой бд.
Db_unique_name меняется параметрами, sid можно сделать любой, как и имя сервиса
Условная компиляция рулит и переменные $$ххх
У нас для этого есть таблица в системе с SYSID. На разных окружениях она разная.
С условной компиляцией проще: ставим/меняем в параметрах PLSQL_CCFLAGS, например: PLSQL_CCFLAGS='DBTYPE:QA', создаём пакет в котором определяем константу равную $$DBTYPE и функцию ЕЕ возвращающую, и startup триггер, компилящий его. И все, спокойно используем где нужно. Можно туда добавить ещё что-то нужное для отладки только на не продах
Обсуждают сегодня