2013-04-08 3 views
0

Я использую sql-разработчик в базе данных оракула. Мое требование состоит в том, чтобы вытащить более 8000 строк сразу с использованием идентификаторов первичного ключа, которые у меня есть. Разработчик sql не позволяет мне получать более 1000 одновременно. Все, что я могу сделать, это добавить OR и вытащить максимум 2000 (1000 + 1000). Есть ли лучший способ вытащить ВСЕ сразу?Чтобы получить более 1000 записей с использованием предложения IN

Если временная таблица должна использоваться, как я могу ее использовать в оракуле?

Select * from X where ID in (1,2,...1000) OR ID IN (1001,1002,...2000); 

Спасибо

+0

Вам нужно использовать 'IN'? Почему не 'МЕЖДУ 0 И 8000' – Tikkes

+0

Откуда берутся идентификаторы - еще одна таблица? Передано сценарию или процедуре? 8000 - это множество значений для управления и обслуживания вручную. Если они смежны, вы можете использовать «между», но неясно, являются ли приведенные вами значения примерами? –

+0

, поскольку я все еще помню, что мы используем ключевое слово IN прежде, но вы должны остерегаться этого, поскольку оно имеет максимальное количество аргументов. –

ответ

3

Поместите все ID в таблице в темп.

Затем выполнить SELECT запрос WHERE id IN(SELECT ID FROM < временный секретарь таблицы вы создали>).

Должно работать.

например. создания TEMP TABLE в Oracle:

CREATE TABLE `temp` 
    AS SELECT distinct `id` FROM `<your table>`; 

Cheers.

+0

@Luv спасибо Luv –

+0

**:) ** Добро пожаловать , – Luv

+0

1. Как создать временную таблицу? 2. Я использую sql JOIN для присоединения к временной таблице и представляющей интерес таблице, а затем использую инструкцию SELECT. Прошу прощения, я смущаюсь. –

Смежные вопросы