выделение нескольких строк в одну переменную и использование ее в предложении where другого запроса на удаление - PullRequest
1 голос
/ 29 марта 2012

Как мы можем выделить несколько строк в одну переменную, объявленную как some_table.rowtype в SQL. Таким же образом я хочу получить несколько значений строки одного столбца в переменную. Таким образом,

  1. Как я могу объявить тип переменной?
  2. Могу ли я использовать это в предложении where?
  3. Могу ли я перебрать значения этой переменной (коллекции)?

Я хочу сделать это в хранимой процедуре, чтобы удалить одну или несколько записей таблицы, соответствующих значениям этой переменной.

Ответы [ 2 ]

0 голосов
/ 29 марта 2012
CREATE TYPE number_table AS TABLE OF NUMBER;
/

DECLARE
  my_number_table  number_table;
BEGIN
  SELECT some_column BULK COLLECT INTO my_number_table FROM some_table;
  DELETE FROM some_other_table WHERE some_column IN (
    SELECT column_value FROM TABLE(CAST(my_number_table AS number_table))
    );
END;
/
0 голосов
/ 29 марта 2012

Это у вас работает?

DELETE FROM myTable 
WHERE myTable.ID IN 
    (SELECT ID 
     FROM myOtherTable 
     WHERE myOtherCondition)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...