Эта функция вернет всю строку из таблицы, которую я отправляю, в качестве параметра
CREATE OR REPLACE FUNCTION get_results(tables_name IN varchar2)
RETURN SYS_REFCURSOR
IS
l_rc SYS_REFCURSOR;
BEGIN
OPEN l_rc
FOR 'SELECT *
FROM ' || tables_names ;
RETURN l_rc;
END;
Эта процедура вызовет вышеуказанную функцию.Я просто вызову процедуру с именем категории и хочу получить все значения из тех таблиц, которые связаны с категорией.
CREATE OR REPLACE PROCEDURE select_record(category_name IN VARCHAR2)
AS
type tableaarray IS VARRAY(20) OF VARCHAR2(20);
tables_names tableaarray;
total integer;
result SYS_REFCURSOR;
BEGIN
IF category_name = 'jobs' THEN
tables_names := tableaarray('categories');
ELSIF category_name = 'alert' THEN
tables_names := tableaarray('alert_demo');
END IF;
total := tables_names.count;
FOR i in 1 .. total LOOP
result := get_results(tables_names(i));
END LOOP;
END;
Теперь проблема в цикле.Я не могу отобразить вывод, который я получаю в цикле.Подход не может быть правильным.Я новичок в plsql.Пожалуйста, дайте мне некоторую идею, как я могу это сделать.