Вы должны явно писать каждый столбец, нужно обрабатывать в вашей вставке, за исключением тех, которые имеют некоторые автоинкрементные, по умолчанию, ...
Однако это хорошая идея, даже если вы этого не сделаете это нужно, потому что это дает вам больше контроля и более читаемый код:
insert into xxacl_pn_project_link_h(
HISTSEQ_NO ,
HIST_DATE ,
MKEY ,
PROJECT_ID ,
PROJECT_NAME ,
DIRECT_BOOKING ,
NON_ORACLE_PROJECT ,
ATTRIBUTE1 ,
ATTRIBUTE2 ,
ATTRIBUTE3 ,
ATTRIBUTE4 ,
ATTRIBUTE5 ,
LAST_UPDATE_DATE ,
DELETE_FLAG ,
CREATION_DATE ,
CREATED_BY ,
LAST_UPDATE_LOGIN
)
select HISTSEQ_NO_sq.nextVal,/*HISTSEQ_NO */
sysdate ,/*HIST_DATE */
MKEY ,/*MKEY */
PROJECT_ID ,/*PROJECT_ID */
PROJECT_NAME ,/*PROJECT_NAME */
DIRECT_BOOKING ,/*DIRECT_BOOKING */
NON_ORACLE_PROJECT ,/*NON_ORACLE_PROJECT*/
ATTRIBUTE1 ,/*ATTRIBUTE1 */
ATTRIBUTE2 ,/*ATTRIBUTE2 */
ATTRIBUTE3 ,/*ATTRIBUTE3 */
ATTRIBUTE4 ,/*ATTRIBUTE4 */
ATTRIBUTE5 ,/*ATTRIBUTE5 */
LAST_UPDATE_DATE ,/*LAST_UPDATE_DATE */
DELETE_FLAG ,/*DELETE_FLAG */
CREATION_DATE ,/*CREATION_DATE */
CREATED_BY ,/*CREATED_BY */
LAST_UPDATE_LOGIN /*LAST_UPDATE_LOGIN */
FROM xxacl_pn_project_link l
WHERE l.mkey = '1'
Для обработки вашего HISTSEQ_NO
поля, давая, что он не имеет автоинкрементный логики, вы можете использовать последовательность:
create sequence HISTSEQ_NO_sq start with 1
у вас все еще отсутствует один столбец, если я вижу его правильно. У вас есть дата, но вы по-прежнему не указали столбец 'HISTSEQ_NO' – SomeJavaGuy
Укажите столбцы, т.е.' INSERT INTO t (c1, c2, c3, ...) SELECT ca, cb, cc, ... FROM ... ' , Примечание. Для SELECT не требуются круглые скобки. – jarlh
@KevinEsche: Я хочу вставить 'HISTSEQ_NO' автоматически приращение .. я не думаю, что мне нужна дата для этого. – BNN