BEGIN
FOR i IN 1..10 LOOP
INSERT INTO emp( ENAME,EMPNO,DEPTNO,HIREDATE,sal,JOB)
VALUES (
(SELECT DBMS_RANDOM.STRING('A', 10) STR FROM DUAL),
(SELECT DBMS_RANDOM.VALUE(1,1000) RANDOM FROM DUAL),
FLOOR(DBMS_RANDOM.VALUE(1,4) )*10,
sysdate,
FLOOR((SELECT DBMS_RANDOM.VALUE(1000,9000) RANDOM FROM DUAL)),
'ANALYST'--문제부분
);
END LOOP;
END;
-------------------
CLERK SALESMAN PRESIDENT MANAGER ANALYST
중에서 하나만 선택해서 넣고싶은데 랜덤 셀랙트문을 모르겠어요
SELECT
*
FROM
(SELECT
*
FROM
(SELECT 'CLERK','SALESMAN','PRESIDENT','MANAGER','ANALYST' FROM dual
)
ORDER BY
dbms_random.value
)
WHERE
rownum = 1;
이렇게하면 한행으로 다 출력되버리구요
어덯게하면 좋나요?
Comment 1
-
샤오린
2015.07.23 17:20
selectAfrom(SELECTAFROM(SELECT 'CLERK' A FROM dualUNION ALLSELECT 'SALESMAN' A FROM dualUNION ALLSELECT 'PRESIDENT' A FROM dualUNION ALLSELECT 'MANAGER' A FROM dualUNION ALLSELECT 'ANALYST' A FROM dual)ORDER BYdbms_random.value)where rownum = 1이런식으로 출력을 하셔야 랜덤으로 원하는 하나의 값이 출력됩니다.