Sql 在Oracle表中插入随机数据
要在Oracle表中创建随机数据,请执行以下操作:Sql 在Oracle表中插入随机数据,sql,oracle,plsql,oracle11g,Sql,Oracle,Plsql,Oracle11g,要在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 (EVENTI
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:
数据类型不一致:预期日期获取编号ORA-06550:第4行,
第1列:PL/SQL:SQL语句被忽略
655000000-“行%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;
变化:
代码>最终结束后
此外,如果您通过Allroundautomations使用PL/SQLDeveloper,您可以发现 这项工作的好工具:数据生成器。 它可能非常有用,因为它可以帮助生成一些数据 并将其放置在表格中 (参见所附屏幕截图)
插入事件(事件ID,“源”、类型、事件日期、描述)
选择级别,级别“警告”,
TO_DATE(TRUNC(DBMS_RANDOM.VALUE)(TO_CHAR(日期'2000-01-01','J')),TO_CHAR(日期'9999-12-31','J')),'J'))
,dbms_随机值(1100)
来自双重
按级别连接是的,我更新了帖子。该dbms_random()
调用也不会返回日期,因此如果您尝试在date
列中插入类似3684482.0997
的数字,它将失败。我如何更新它?
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;