2016-01-19 4 views
1

Нужна небольшая помощь в создании запроса оракула.Как вставить несколько значений из одной таблицы в другую?

У меня есть таблица, в которой я хочу вставить данные из другой таблицы.

Я получаю номера счетов из этой таблицы с помощью запроса:

select AccountNumbers from Company; 

Это возвращает меня,

1234 
2345 
3456 
4567 
5678 

Теперь я хочу, чтобы вставить эти данные в другой таблице.

Insert into tempTable (id, group, accountNumber) values (seq_mytemp_sequence, 'A', (select AccountNumbers from Company)); 

Я создал последовательность, которая отлично работает. Но это не говорит о том, что sub-запрос возвращает более одной строки, что очевидно.

Я хочу, чтобы данные в временную таблицу для вставки таким образом, что это будет так,

1 A 1234 
2 A 2345 
3 A 3456 
4 A 4567 
5 A 5678 

Я попытался с помощью цикла, но его трудно извлечь индивидуальный счет как ROWNUM не работает для ничего, кроме 1.

Может ли кто-нибудь мне повести о том, как это сделать? Ваша помощь была оценена.

ответ

2

Если это не будет, как:

Insert into tempTable (id, group, accountNumber) 
select seq_mytemp_sequence, 'A', AccountNumbers from Company ; 

И не нравится:

Insert into tempTable (id, group, accountNumber) 
values (seq_mytemp_sequence, 'A', (select AccountNumbers from Company)); 
1

Вы должны использовать INSERT INTO ... SELECT и когда вы хотите номер из последовательности вам нужно .NEXTVAL:

INSERT INTO tempTable (id, "group", accountNumber) 
SELECT SEQ_MYTEMP_SEQUENCE.NEXTVAL, 
     'A', 
     AccountNumbers 
FROM Company 

(Кроме того, просьба не указывать имена колонок whi ch - ключевые слова, такие как GROUP, так как вам придется обернуть их в двойные кавычки, а затем Oracle обеспечит чувствительность к регистру по имени столбца)

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