У меня есть две отдельные, неподключенные и неподключаемые базы данных Oracle.Мне нужно быстро и безболезненно передавать информацию от одного к другому.
Обычно я делал до сих пор, когда в этой ситуации создаю промежуточную область для данных, которые необходимо импортировать (по сути, временная таблица только для хранения данных, пока я не закончу слияние).Я копирую все данных, которые могут понадобиться из источника в эту область подготовки.Затем я объединяю данные, как если бы две таблицы были соединены, что, конечно, означает, что я могу отфильтровать любые данные, которые мне не нужны в то время.
Вот проблема в моем текущем случае.Исходная таблица чрезвычайно большая и полностью неиндексированная (что-то, что я не могу контролировать, тьфу).Это означает, что навсегда требуется, чтобы получить необходимые данные, если я не фильтрую их каким-либо образом.Кроме того, таблице назначения действительно требуется только относительно небольшое подмножество данных, чтобы выполнить то, что ей нужно, возможно, десять тысяч или около того отдельных строк одновременно.В этом случае я не хочу копировать все данных, которые могут понадобиться .Я просто хочу скопировать точные данные, которые будут необходимы или максимально приближены к этому.
tl: dr version
Как конкретно я могу ограничить свой выбор исходной таблицы на основе того, что мне нужно в таблице назначения, если они не могут общаться друг с другом?
Например, я мог бы выбрать идентификаторы дляданные, которые необходимы в месте назначения и на основе этого строят запрос для исходной таблицы.Однако это может привести к появлению запроса со многими тысячами предложений OR:
SELECT x, y FROM z WHERE (ID = 1 OR ID = 2 ... OR ID = 10000 OR ID = 10001...)
или что-то в этом роде.Есть ли лучший способ сделать это?