У меня есть имя таблицы SAMPLETABLE
, оно содержит имена таблиц, которые мне нужны, в столбце TABLENAMES
. Допустим, имена таблиц TABLEA
, TABLEB
и TABLEC
.
По запросу
SELECT TABLENAMES FROM SAMPLETABLE WHERE ROWNUM = 1
Я получаю вывод столбца TABLENAMES со значением TABLEA
.
Моя проблема в том, что теперь я хочу использовать это выбранное значение в операторе выбора. То есть,
SELECT * FROM (SELECT TABLENAMES FROM SAMPLETABLE WHERE ROWNUM = 1)
Моя идея состоит в том, что он вернет содержимое TABLEA
, потому что, когда вложенный SELECT возвращает TABLEA, внешний SELECT должен захватить и отобразить его.
Наоборот, я получаю вывод только внутреннего оператора, то есть
SELECT TABLENAMES FROM SAMPLETABLE WHERE ROWNUM = 1
и
SELECT * FROM (SELECT TABLENAMES FROM SAMPLETABLE WHERE ROWNUM = 1)
вернуть тот же вывод.
Я хочу, чтобы первый оператор SELECT извлекал возвращаемое значение второго оператора SELECT и отображал таблицу. Приведенный выше запрос этого не делает, так как мне это сделать? А что не так с моей идеей?
Я на Oracle 10g, любая помощь приветствуется.
execute immediate
, собственный динамический SQL), чтобы иметь возможность выбирать из таблицы, имя которой хранится в виде строкового литерала - вы не можете сделать это со статическим SQL. - person Nick Krasnov   schedule 11.09.2013