Мне нужно получить идентификатор из таблицы, имя таблицы которой определяется путем выполнения другого запроса.
Я попытался реализовать его, определив переменную, которая сохраняет результаты первого запроса. Затем я создал второй запрос, который использует имя таблицы из первого.
define tablename = (SELECT table_name FROM tables_names WHERE row_id = 147);
define rowid = SELECT row_id FROM &tablename WHERE title is NULL;
select * from &rowid;
Однако он не работает. Я также пытался создать хранимую процедуру, но я не понимаю, как она должна работать:
DECLARE
tablename varchar(128);
rowid int;
BEGIN
SELECT table_name INTO tablename FROM tables_names WHERE row_id = 147);
SELECT row_id INTO rowid FROM &tablename WHERE title is NULL;
END;
Вывод должен дать мне ожидаемый rowid. Я не эксперт по Oracle, и это кажется простой вещью, но я не знаю, как этого добиться.