0

我是 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,我想插入新记录。

4

1 回答 1

7

你不需要一个光标。

赶紧跑:

INSERT
INTO    mac
SELECT  DEVICES_ID_SEQ.nextval, mac, 'abc', 123
FROM    (
        SELECT  DISTINCT
                mac
        FROM    devices
        )
于 2013-04-29T09:32:45.210 回答