Я пытаюсь создать динамическую c функцию в Oracle, используя курсор для всех таблиц, которые необходимо удалить и заново создать. Например, у меня есть следующая примерная структура таблицы:
CREATE TABLE All_tmp_DATA AS
(SELECT 'T_tmp_test1' As Table_NM, 'TEST1' As Process_name FROM DUAL UNION ALL
SELECT 'T_tmp_test2' As Table_NM, 'TEST1' As Process_name FROM DUAL UNION ALL
SELECT 'T_tmp_test3' As Table_NM, 'TEST1' As Process_name FROM DUAL)
Приведенные выше таблицы, начинающиеся с "T_tmp", представляют все таблицы в базе данных, которые необходимо отбросить, если их число> 1 при запуске TEST1 обработать. Мне действительно нужна функция для передачи параметра Process_name, где я могу ввести «TEST1», и создать al oop с помощью курсора, привязав его к Table_NM из All_tmp_DATA и вставив его в table_name в следующем коде:
BEGIN
SELECT count(*)
INTO l_cnt
FROM user_tables
WHERE table_name = 'MY_TABLE';
IF l_cnt = 1 THEN
EXECUTE IMMEDIATE 'DROP TABLE my_table';
END IF;
END;