Я пытаюсь найти, есть ли способ в Oracle 11g, чтобы я мог сохранить полученный список из SELECT в переменную (объект), а затем прокрутить этот список, выполняя вторую запрос по результатам?Объект временного списка Oracle 11g из запроса
В основном, что я пытаюсь сделать, это получить список всех таблиц с именем столбца, а затем удалить определенные данные из них.
Что-то вроде:
var PRODUCTID_TABLE = SELECT table_name
FROM user_tab_columns
WHERE column_name = 'PRODUCT_ID'
AND table_name NOT LIKE 'BIN%';
FOR T IN PRODUCTID_TABLE LOOP
DELETE FROM T.TABLE_NAME WHERE PRODUCT_ID = {value};
END LOOP;
COMMIT;
Заранее спасибо
KS
Мне нравится вариант один. Есть ли способ затем запустить эти сгенерированные операторы DELETE сразу после этого, так как они не копируют их и запускают их вручную? – Casper
Не думайте, что это возможно, если вы не напишите хранимую функцию, которая будет запускать запрос, используя EXECUTE IMMEDIATE. Затем вы запустите его в первом запросе, например: 'SELECT run_dynamic_delete (table_name) FROM user_tab_columns WHERE column_name = 'PRODUCT_ID' И имя_таблицы NOT LIKE 'BIN%';' –
Приветствия за это, я превратил его в два шага работу в конце. Разработал этот скрипт для создания сценариев DELETE, а затем скопировал их в .sql и прошел через sqlplus – Casper