DataBase
[Oracle] select문으로 insert하기(row_number() 이용)
부지런한피로
2022. 10. 11. 12:37
1. insert문에 들어가야 할 컬럼을 select문으로 조회한다.
select (select max(fileno)+1 from tb_file_data) + row_number() over(order by t.fileno) as fileno
, t.cntno, 'public', t.orifilename, t.filename, t.filetype, t.filesize
from TB_FILE_DATA t
where code like '%open%'
and delchk = 'N'
2. pk의 무결성제약조건을 만족시키기 위하여 select문으로 조회한 순번만큼 pk값을 더해준다.
(select max(fileno)+1 from tb_file_data) + row_number() over(order by t.fileno)
3. insert문을 생성한다.
insert into TB_FILE_DATA (fileno, cntno, code, orifilename, filename, filetype, filesize)
select (select max(fileno)+1 from tb_file_data) + row_number() over(order by t.fileno) as fileno
, t.cntno, 'public', t.orifilename, t.filename, t.filetype, t.filesize
from TB_FILE_DATA t
where code like '%open%'
and delchk = 'N'