sql - 有没有一种方法可以不使用 FOR 循环来创建虚拟记录?

标签 sql oracle

我不知道如何在不使用 FOR 循环的情况下放置 1000000 个虚拟数据。这是我使用的代码:

CREATE TABLE dummy_records (
dummy_id number not null,
dummy_name varchar2(100)
);

BEGIN
    FOR loop_counter IN 1..1000000 LOOP
    INSERT INTO dummy_records (dummy_id, dummy_name) VALUES (loop_counter, dbms_random.value(1,100)); 
    END LOOP; 
END;

最佳答案

按级别简单连接怎么样?

create table mytable as
select level dummy_id,
dbms_random.string('U', 20) dummy_name
from dual connect by level < 1000001

http://sqlfiddle.com/#!4/8d677/1

关于sql - 有没有一种方法可以不使用 FOR 循环来创建虚拟记录?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67978613/

相关文章:

mysql - 如何指定多个自连接的排序顺序

java - 安全生成每天重置的顺序订单号

oracle - SQLERRM被覆盖

sql - 选择多行匹配数据

sql - 如何以一种好的方式使用 SQL NULL 值和 JSON?

mysql 计数和连接

sql - Lotus DB 到 SQL Server 的迁移

mysql - MySQL 查询出错

java - org.hibernate.exception.SQLGrammarException : ORA-01747: invalid user. table.column、table.column 或列规范

尽管有提示,Oracle 并不使用隐形索引