select * from tb_1,(select level from dual connect by level <= 1000000);
其中dual表是Oracle中的一个虚拟表,用来构成select的语法规则,里面无论什么时候都只有一条记录。这个表的存在是为了方便用户在没有实际表的存在时做各种各样的操作:如查看当前用户,调用系统函数,获得当前系统时间,主机名等等,在这里就不细讲了。
而connect by level是Oracle中一组的关键字,主要是用来进行递归查询,但是也有一个特殊的用法:生成1…n序列。 在这里我们使用这个特殊用法后,能将原表复制出N份记录。
但是注意,当数据量到达449420时会强行中止,系统会报“conncet by内存上限为100MB”的错误: