В таблице агентов у меня есть поле bossId, которое является идентификатором другого агента, поэтому я сгенерировал данные для всех других полей в таблице агента, и теперь мне нужно установить bossId для всех строк.
Итак, каждая строканужно выбрать agentId для его поля bossId из той же таблицы.могут быть некоторые агенты с одним и тем же боссом, но агент не может быть самим боссом.
это таблица, которую у меня есть
+---------+------+--------+
| agentId | name | bossId |
+---------+------+--------+
| 123 | aaa | |
| 124 | bbb | |
| 125 | ccc | |
| 126 | ddd | |
+---------+------+--------+
требуемый результат:
+---------+------+--------+
| agentId | name | bossId |
+---------+------+--------+
| 123 | aaa | 124 |
| 124 | bbb | 123 |
| 125 | ccc | 126 |
| 126 | ddd | 123 |
+---------+------+--------+
поэтому пустой столбец bossId необходимо заполнить AgentId из той же таблицы, как это сделать в pl sql?
ОБНОВЛЕНИЕ: попытался использовать этот код, который, кажется, в порядке, но я получаю ошибки
begin
for i in 1..17 loop
update policeman p
set bossid = (select p2.officerid
from policeman p2
order by dbms_random.value
where rownum = 1)
where rownum =i;
end loop;
end ;
ошибка:
ORA-06550: line 6, column 18:
PL/SQL: ORA-00907: missing right parenthesis
ORA-06550: line 3, column 5:
PL/SQL: SQL Statement ignored