我创建了以下简单的 PL/SQL 存储过程示例来提出特定问题。此过程将员工姓名和 ID 号插入到名为的表中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
。例如,
如果国家 = 'usa',我希望 INSERT 行显示为:
INSERT INTO employees_usa VALUES (emp_id, name, 1000);
如果国家 = '德国',我希望 INSERT 行显示为:
INSERT INTO employees_germany VALUES (emp_id, name, 1000);
如果国家 = '法国',我希望 INSERT 行显示为:
INSERT INTO employees_france VALUES (emp_id, name, 1000);
etc...
有没有办法在 PL/SQL 中通过替换某些东西来做到这一点employee_???
所以只使用一行 INSERT 代码?或者正在使用case
or if/then/else
声明最好的方式?