다음과 같은 간단한 PL/SQL 저장 프로 시저 예제를 작성하여 특정 질문을했습니다. 이 절차는 직원 이름과 ID 번호를 employees_???
이라는 테이블에 삽입합니다. ??? 아래에 설명되어 있습니다. 내가 필요로 무엇PL/SQL에서 프로그래밍 방식으로 테이블 이름을 설정하는 방법은 무엇입니까?
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 라인을 원하는 경우 : 예를 들어,
은 국가 = '미국은'나는 INSERT 라인을 읽고 싶다면
INSERT INTO employees_germany VALUES (emp_id, name, 1000);
국가 = '프랑스는'나는 읽을 INSERT 라인을 원하는 경우 :
INSERT INTO employees_france VALUES (emp_id, name, 1000);
등 ...
employee_???
대신 무언가를 사용하여 PL/SQL에서이를 수행하는 방법이 있습니까? 그래서 INSERT에 대한 코드는 한 줄만 사용됩니까? 또는 case
또는 if/then/else
문을 사용하는 것이 가장 좋습니다.
귀하의 DB 모델이 완전히 끊어집니다. 'country'라는 이름의 컬럼을 가진'employee' 테이블 하나만 있으면됩니다. 이 잘못된 모델로 인해 발생하는 문제를 해결하는 대신 즉시 다시 설계해야합니다. –
예, 동의합니다 - 이것은 pl/sql의 변수 이름에 IN 매개 변수를 가져 오는 방법을 파악하기 위해 작성된 예제 일뿐입니다. – ggkmath
다음은 ** 매우 나쁜 예입니다. –