Я работаю над устаревшим приложением, используя базу данных Oracle 11g, и столкнулся с проблемой, когда у меня есть 5 таблиц в разных схемах с одинаковой структурой данных. Мне нужно иметь возможность вставлять данные в эти таблицы, и я пытаюсь избежать дублирования кода.Можно ли использовать переменную как имя таблицы в SQL?
Я знаю, что сделать что-то вроде следующего
IF p_schema = SCHEMA1 THEN
INSERT INTO SCHEMA1.TABLE_NAME_SCHEMA1 (...) VALUES (...)
ELSIF p_schema = SCHEMA2 THEN
INSERT INTO SCHEMA2.TABLE_NAME_SCHEMA2 (...) VALUES (...)
ELSIF p_schema = SCHEMA3 THEN
INSERT INTO SCHEMA3.TABLE_NAME_SCHEMA3 (...) VALUES (...)
ELSIF p_schema = SCHEMA4 THEN
INSERT INTO SCHEMA4.TABLE_NAME_SCHEMA4 (...) VALUES (...)
ELSIF p_schema = SCHEMA5 THEN
INSERT INTO SCHEMA5.TABLE_NAME_SCHEMA5 (...) VALUES (...)
END IF;
Есть ли способ, чтобы сделать таблицу имя переменной внутри SQL, так что я могу просто сделать одну вставку заявление, но вставить в таблицу я хочу?
Пожалуйста, опишите ваши усилия и результаты до сих пор. –