Самый простой и наиболее распространенный ответ - убедиться, что имена схем всегда совпадают в разных средах.
Если это невозможно, есть ли конфликты между именами таблиц? То есть есть таблица My_App.Address
и таблица Their_App.Address
? Если нет конфликтов, вы можете просто создать синонимы, которые указывают на различные таблицы и исключить имена схем
CREATE SYNONYM address FOR my_app.address
CREATE SYNONYM person FOR their_app.person
Если есть конфликты, вы все равно можете использовать синонимы, вам просто нужно переименовать объекты, т.е.
CREATE SYNONYM my_address FOR my_app.address
CREATE SYNONYM their_address FOR my_app.address
За исключением этого, вы можете избежать изменения текущей схемы перед выполнением каждого запроса. Если вы делаете
ALTER SESSION SET current_schema = MY_APP
SELECT * FROM address
вы автоматически выберете из таблицы my_app.address
. Если вы делаете
ALTER SESSION SET current_schema = THEIR_APP
SELECT * FROM address
вы автоматически выберете из таблицы their_app.address
1019 *