как использовать переменную типа dbms_sql.varchr2_table в предложении where - PullRequest
0 голосов
/ 13 октября 2011

Я добавил строки из таблицы в переменную типа dbms_sql.varchar2_table.

select id 
  bulk collect into collValyes 
  from tabl1;

collValyes - это переменная типа dbms_sql.varchar2_table. Теперь мне нужно использовать collValyes в предложении where.Like

update Table2 
   set Status ='R' 
 where id in collValyes .

при выполнении одного запроса выше я получаю

PLS-00382: expression is of wrong type

Я много искал в сети, но не нашел решения. Пожалуйста, помогите

1 Ответ

3 голосов
/ 13 октября 2011

Вы можете использовать массовую обработку FORALL для своего обновления:

FORALL x IN INDICES OF collValyes
   UPDATE Table2
      SET status = 'R'
    WHERE id = collValyes(x);

Подробнее об Oracle FORALL можно узнать здесь:

http://download.oracle.com/docs/cd/B19306_01/appdev.102/b14261/forall_statement.htm

Надеюсь, это поможет ...

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...