Я создал следующий простой пример хранимой процедуры PL / SQL, чтобы задать конкретный вопрос. Эта процедура вставляет имя и идентификатор сотрудника в таблицу с именем employees_???
. ??? объясняется ниже.
PROCEDURE hire_employee (emp_id IN INTEGER, name IN VARCHAR2, country IN VARCHAR2)
AS
BEGIN
INSERT INTO employees_??? VALUES (emp_id, name, 1000);
END hire_employee;
Мне нужно задать имя таблицы на основе переменной IN country
. Например,
Если страна = 'США', я хочу, чтобы строка ВСТАВИТЬ читала:
INSERT INTO employees_usa VALUES (emp_id, name, 1000);
Если страна = 'германия', я хочу, чтобы в строке ВСТАВИТЬ было написано:
INSERT INTO employees_germany VALUES (emp_id, name, 1000);
Если страна = 'Франция', я хочу, чтобы строка ВСТАВКА читалась:
INSERT INTO employees_france VALUES (emp_id, name, 1000);
и т.д ...
Есть ли способ сделать это в PL / SQL, подставив что-то вместо employee_???
, чтобы для INSERT использовалась только одна строка кода? Или лучше использовать оператор case
или if/then/else
?