使用声明的序列在Pl / SQL中填充表

时间:2012-01-05 13:31:30

标签: loops plsql sequences

我需要使用序列在我的数据库中填充大量新创建的表,最少30行。请发布语法。

我要使用循环吗?

欢迎任何建议和解决方案。

在解决此问题时,我们非常感谢您的帮助。

我创建了三个序列,并将值添加到3列,每行30行。对于idtel_noemp_id可以创建3个序列并添加30行。如果一列是name之类的varchar2,该怎么办?目前,3个序列在3列中填充值,但在“名称列”中添加空值。请帮助我们如何添加30个名称并解决此问题。我很抱歉我是新手,请不要犹豫澄清。非常感谢你的时间。

总结一下:我只想让序列为所有行生成数字序列并提示我输入名称。

2 个答案:

答案 0 :(得分:0)

我猜你想要什么,但是怎么样:

create table test
(id number);

create sequence seq_test
start with 1
maxvalue 999999999999999999999999999
minvalue 1
nocycle
nocache
noorder;

insert into test(id)
select seq_test.nextval from dual
connect by level <= 30;

commit;

答案 1 :(得分:0)

您还没有提到要运行脚本的位置 - 如果它在SQL * Plus中,那么您可以使用替换变量

BEGIN
    FOR i IN 1..COUNT LOOP
        INSERT INTO emp
                    (id,
                     tel_no,
                     emp_id,
                     NAME)
        VALUES      (id_seq.next_val,
                     tel_no_seq.nextval,
                     emp_id_seq.nextval,
                     &name);
    END LOOP;
END;