2016-09-01 6 views
0

데이터를 insert 문으로 내보낼 때 개별적으로 실행해야하는 (abc.sql) 거대한 insert 문이 생성됩니다. 10000 insert 문을 하나씩 실행할 수는 없습니다. 그래서 한 번의 클릭으로 또는 몇 번의 수정으로 실행할 수있는 두꺼비로 선택한 데이터의 대량 삽입 문을 내보내는 방법.대량으로 insert 문을 내보냄

답변

0

대량 삽입이 없습니다. 한 테이블의 레코드를 다른 테이블에 삽입 할 수 있습니다 (예 : "insert into table (column) select t.column from temp_table t;").

+0

** ** 대량 삽입물입니다. 그러나 당신의 아이디어는 좋습니다. 테이블이 동일한 데이터베이스에있는 경우. 데이터베이스가 연결되면 db_link를 사용할 수 있습니다. 그렇지 않으면 데이터를 반출하고 다시 반입하지 ​​않고는 수행 할 수 없습니다. –

+0

나는 원하는 대답을 얻었다. 10000 문을 삽입하고 BEGIN을 맨 위에 추가하고 END;/마침내. 모두에게 감사드립니다. –

0

TOAD가 csv 파일로 데이터를 저장 한 다음 sqlloader를 사용하여 db에 데이터를로드하면 단일 행 삽입보다 훨씬 빠릅니다.

+0

그는 Toad를 사용하여 csv 파일을 데이터베이스에로드 할 수 있습니다. –

+0

CSV가 내 문제를 해결하지 않습니다. 표 2의 예 2 열이 있습니다. 년 및 to_do. 동일한 데이터를 동일한 테이블에 삽입해야하지만 연도가 변경됩니다. 2004 년에는 5000 행, 2005 년에는 5000 행을 지원합니다. text/sql 파일이나 뭐든지간에 2004 년부터 2005 년까지 찾기 및 바꾸기 만 변경합니다. 전체적으로 삽입 쿼리가 필요합니다. –

+1

내가 원하는 답변을 얻었습니다. 10000 문을 삽입하고 BEGIN을 맨 위에 추가하고 END;/마침내. Neeraj와 Florin에게 감사드립니다. –

1

다른 사람들의 의견을 바탕으로 불필요한 내보내기/편집/가져 오기 작업을 많이하고 있다고 생각합니다. 데이터베이스가 당신을 위해 모든 일을하도록하십시오!

내 테스트 테이블에서이 모든 작업을 수행 할 필요가 없습니다. 올해 2015 년은이 (효과 사본) 같은 데이터를 삽입하지만 1 씩 증가 해로 할 모든 행의 경우 :

insert into x_test 
(select col_a, col_b, col_c, col_d, l_date + 365 from x_test -- 2016 
where to_char(l_date, 'YYYY') = '2015'); 

조합과 동시에 더욱 년 추가

insert into x_test 
(select col_a, col_b, col_c, col_d, l_date + 365 from x_test -- 2016 
where to_char(l_date, 'YYYY') = '2015') 
union 
(select col_a, col_b, col_c, col_d, l_date + 730 from x_test -- 2017 
where to_char(l_date, 'YYYY') = '2015'); 
관련 문제