簡體   English   中英

在Oracle表中插入隨機數據

[英]Insert random data in Oracle table

我想在Oracle表中創建隨機數據:

CREATE TABLE EVENTS(
  EVENTID INTEGER NOT NULL,
  SOURCE VARCHAR2(50 ),
  TYPE VARCHAR2(50 ),
  EVENT_DATE DATE,
  DESCRIPTION VARCHAR2(100 )
)
/

我試過這個:

BEGIN  
FOR loop_counter IN 1..1000 
LOOP 
INSERT INTO EVENTS (EVENTID, SOURCE, TYPE, EVENT_DATE, DESCRIPTION) VALUES (loop_counter, loop_counter, 'warning', 
DBMS_RANDOM.VALUE(TO_CHAR(DATE '2000-01-01','J') ,TO_CHAR(DATE '9999-12-31','J')), dbms_random.value(1,100)); 
END LOOP; 
COMMIT; 
END;

我收到此錯誤異常

錯誤報告 - ORA-06550:第5行,第13列:PL / SQL:ORA-00932:不一致的數據類型:預期DATE得到NUMBER ORA-06550:第4行,第1列:PL / SQL:SQL語句忽略06550. 00000 - “行%s,列%s:\\ n%s“*原因:通常是PL / SQL編譯錯誤。 *行動:

你能告訴我如何解決這個問題嗎?

采用:

BEGIN  
FOR loop_counter IN 1..1000 LOOP 
INSERT INTO "EVENTS" (EVENTID, "SOURCE", TYPE, EVENT_DATE, DESCRIPTION) 
VALUES (loop_counter, loop_counter, 'warning', 
        TO_DATE(TRUNC(DBMS_RANDOM.VALUE(TO_CHAR(DATE '2000-01-01','J') ,TO_CHAR(DATE '9999-12-31','J'))),'J')
        ,dbms_random.value(1,100)
       ); 
END LOOP; 
COMMIT; 
END;

SqlFiddleDemo

變化:

  1. 添加mising ; 在最后END
  2. 引用關鍵字
  3. 重寫隨機日期生成

此外,如果您使用Allroundautomations的PL / SQL Developer,您可以找到適合這項工作的好工具:數據生成器。 它非常有用,因為它可以幫助生成任何類型的數據並將其放置到表中。

(見附后的截圖) 在此輸入圖像描述

INSERT INTO EVENTS (EVENTID, "SOURCE", TYPE, EVENT_DATE, DESCRIPTION)
SELECT level, level, 'warning', 
        TO_DATE(TRUNC(DBMS_RANDOM.VALUE(TO_CHAR(DATE '2000-01-01','J') ,TO_CHAR(DATE '9999-12-31','J'))),'J')
        ,dbms_random.value(1,100)
  FROM DUAL
CONNECT BY LEVEL <= 1000;

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM