[oracle]SQL 循环输入雇员

标签: Oracle
发布时间: 2017/4/15 18:25:14
注意事项: 本文中文内容可能为机器翻译,如要查看英文原文请点击上面连接.

我想创建一个 FOR 循环的雇员表中插入 1000 名员工。 没关系,如果它们具有相同的名称,但其他 3 的值必须具有不同的值。我需要 emp_id 从 307_1307 插入 1000 名员工,有经理 emp_id 要么 304 或 305 (随机选择) 和 22,000,20 万 (随机选择) 期间的工资。怎么会这样做和如何将我分配序列被主要的关键即去从 307 1307年 emp_id 吗?

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;
/

有什么想法?

解决方法 1:

使用序列和 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);
官方微信
官方QQ群
31647020