Я думаю, вам нужно использовать динамический SQL. Примерно так (извините, я не могу проверить это в данный момент, но я надеюсь, что это должно работать
CREATE PROCEDURE getMetricData (in_table_name varchar2)
IS
real_tab_name varchar(32);
BEGIN
SELECT table_for_join into real_tab_name
FROM join_tables WHERE from_table = in_table_name;
IF (real_tab_name IS NOT NULL) THEN
EXECUTE IMMEDIATE 'SELECT * from metric_data m, ' || real_tab_name || ' u
WHERE m.id = u.id';
END IF;
END;