Я хотел бы в хранимой процедуре обновить все записи, соответствующие идентификатору. Теперь этот список идентификаторов передается в виде таблицы varchar (ассоциативный массив).
CREATE TYPE varcharArray AS TABLE OF VARCHAR2(1000) index by ...
и объявление proc выглядит примерно так
PROCEDURE testProc (p_IDs in varcharArray, p_Success out Number)
и оператор обновления в процедуре
update testtable
set col = 'val'
where id in (select column_value from table(p_IDs);
Это не работает. Поэтому мне пришлось сделать цикл в массиве и обновить для каждого идентификатора.
Но я бы очень хотел, чтобы он обновлялся с помощью предложения where in. Любая помощь была бы отличной.
PS: поле id - это число.
create type
неверно, потому что вы не можете создать ассоциативный массив в базе данных, вы можете только объявить его в блоке PL/SQL. - person Tony Andrews   schedule 02.06.2015