SQL For循环查询

时间:2013-04-29 09:28:03

标签: sql database oracle for-loop

我是SQL的新手。

我想使用下面的for循环查询将数据插入表中。 但无法确定问题

declare
cursor mac is SELECT DISTINCT(MAC) FROM DEVICES;
cmd varchar2(200);
begin
for c in mac loop
cmd := 'INSERT INTO MAC VALUES(DEVICES_ID_SEQ.nextVal,'||c.MAC||',"ABC","123")';
execute immediate cmd;
end loop;
end;

对于现有表中的每个MAC,我想插入新记录。

1 个答案:

答案 0 :(得分:7)

你不需要光标。

跑步:

INSERT
INTO    mac
SELECT  DEVICES_ID_SEQ.nextval, mac, 'abc', 123
FROM    (
        SELECT  DISTINCT
                mac
        FROM    devices
        )