sqlplus에서는 천줄이상 안되는걸로 알고있습니다. 0 6 1,825

by 박원성 [2009.07.29 17:18:48]


sqlplus 는 천줄이상은 안되는걸로 알고 있습니다.
select 컬럼 from 데이블 where 컬럼 in ( 이부분에 테이타를 몇십만게 넣어야할때
어떤 방법으로 해야하는지 궁굼합니다. 제가 알기로는 서버에 파일업로드후하는방법이 있다는대 그방법이 어떤 방식으로 이루어 지는지 자세히 알고 싶습니다.... )

by 전창환 [2009.07.29 17:28:27]
in구문 내 직접 기술할시 1000개의 인자를 넘길 수 없다고 알고 있습니다. 그이상의 데이터라면 '서브쿼리'를 사용하셔야 할꺼 같습니다.
where 컬럼 in ( 서브쿼리 )
이보다 더 나은 방법으로는 '조인'으로 해결하는 방법이 있습니다.

by 전창환 [2009.07.29 17:41:18]
in절에 인자를 직접 기술할시 ex) where 컬럼 in ('1','2','3',...'1000') 1000개이상의 인자가 들어올 수 없지만 서브쿼리를 ex) where 컬럼 in ( select 컬럼 from 몇십만건table ) 사용할시에는 가능합니다. 또한 in절 보다는 조인을 권하고 싶습니다. 성능면에서 더 효율적입니다.

by 박원성 [2009.07.29 17:43:18]
아... 감사합니다.. 서브쿼리로 데이타를 받아와서 하는방법도 있지만 데이타의 값을 txt로 받았을때는 그값들을 넣어야하는대 그럴경우는 어떻게 해야하는지 해서요

by 박원성 [2009.07.29 17:49:18]
제가생각한 방법은 임시테이블을 만들어서 그값을 insert 그런다음 테이블조인을 통해서 값을 추출하는것을 생각했는데 실제로 서버에서 임시테이블을 만드는것은 다시 drop을 해야하니 위험할것같아서요 ^^;;

by 마농 [2009.07.29 17:52:09]
1. sqlldr 로 데이터를 테이블에 밀어 넣을 수 있습니다.
2. external table(외부테이블) 기능으로 파일데이터를 테이블처럼 사용할 수 있습니다.

by 박원성 [2009.07.29 17:56:12]
아.. 외부테이블 기능이라는게 있군요.
감사합니다.. 얼른 찾아봐야겠어요 ^^;;
댓글등록
SQL문을 포맷에 맞게(깔끔하게) 등록하려면 code() 버튼을 클릭하여 작성 하시면 됩니다.
로그인 사용자만 댓글을 작성 할 수 있습니다. 로그인, 회원가입