2013-04-24 2 views
0

직원 테이블에 1000 명의 직원을 삽입하는 FOR 루프를 만들려고합니다. 이름이 같지만 다른 3 개의 값이 다른 값을 가져야하는 것은 맞습니다. 307_1307에서 1000 명의 직원을 삽입하고 emp_id 304 또는 305 (무작위로 선택) 및 22,000에서 200,000 사이의 급여 (무작위로 선택)를 emp_id에 입력해야합니다. 이 작업을 수행하는 방법과 기본 키가 될 시퀀스 즉, 307에서 1307로가는 emp_id를 할당하는 방법은 무엇입니까?SQL 루프를 입력하여 직원을

CREATE SEQUENCE seq6 
START WITH 307 
INCREMENT BY 1 
CACHE 10 
NOCYCLE; 

BEGIN 
FOR i IN 1..1000 LOOP 
INSERT INTO EMPLOYEE (EMP_ID, FNAME, LNAME, MANAGER_EMP_ID, salary) VALUES('307 - 1307','tommy', 'walsh', '304 or 305', 'between 22000 and 200,000'); 
END LOOP; 
END; 
/

아이디어가 있으십니까?

답변

3

사용 순서와 DBMS_RANDOM 패키지 기능 :

INSERT INTO EMPLOYEE (EMP_ID, FNAME, LNAME, MANAGER_EMP_ID, salary) 
VALUES(seq6.nextVal,'tommy', 'walsh', 
    CAST(DBMS_RANDOM.VALUE(304,305) AS INTEGER), 
    CAST(DBMS_RANDOM.VALUE(22,200) AS INTEGER)*1000); 
+0

완벽 치료를 :) 일 –

관련 문제