Oracle数据库查询

时间:2016-05-03 11:05:33

标签: oracle

我想创建一个包含100万条随机记录的测试数据库表。由于我是数据库新手, 有没有办法用任何脚本填充它?

这是我对我桌子的查询。

CREATE TABLE Employee (SEQNUM NUMBER,
                       START_DATE DATE,
                       END_DATE DATE,
                       DURATION TIME,
                       START_TIME TIME,
                       END_TIME TIME,
                       TOTAL_NUM NUMBER);

1 个答案:

答案 0 :(得分:0)

这是一个使用双表和DBMS_RANDOM获取样本数据的简单查询。

CREATE TABLE SMPL 
AS                        
WITH 
    smpl AS 
(                       
    SELECT 
        ROWNUM SEQNUM,
        TO_DATE('01012016','ddmmyyyy') + 365 * dbms_random.value START_TIME, /* random 1 year timestamps from 1.1.2016 */
        TRUNC(10000 * dbms_random.value) TOTAL_NUM, /* random 0 .. 10.000 */
        31 * dbms_random.value DURATION /* duration 0 .. 31 days */
    FROM dual 
    CONNECT BY LEVEL <= 100  /* update number of records here */
)
SELECT 
    SEQNUM, 
    TRUNC(START_TIME) START_DATE,
    TRUNC(START_TIME + DURATION) END_DATE,
    DURATION,
    START_TIME,
    START_TIME + DURATION END_TIME,
    TOTAL_NUM
FROM smpl;

正如其他人所说,EMPLOYEE不是正确的名称。还要考虑只存储

START_TIMEDURATION实际上在表中并计算(例如在视图中)从属列START_DATEEND_TIMEEND_DATE