SET SERVEROUTPUT ON DECLARE table_name varchar2(80) := 'dual'; BEGIN SELECT * FROM table_name WHERE dummy = 'X'; END;
Приведенный выше код выдает ошибку. Я хочу использовать переменную в предложении from.
Для динамического запроса c вы можете использовать EXECUTE IMMEDIATE.
EXECUTE IMMEDIATE
DECLARE table_name VARCHAR2 (80) := 'dual'; v_query VARCHAR2 (200); BEGIN v_query := 'SELECT * FROM ' || table_name || ' WHERE dummy = ''X'''; EXECUTE IMMEDIATE v_query; END;