0
결과를 여러 CSV 파일로 출력하고 각 파일의 특정 행 번호를 잘라 내기를 원합니다. 다음을 시도했지만 여러 쿼리를 작성하지 않으려 고합니다.oracle sqlplus는 행 번호별로 여러 파일로 스풀링합니다.
set colsep ,
DEFINE SPOOL_BASE_NAME = "spool"
DEFINE PAGE_SIZE = 10
DEFINE PAGE_NO = 1
DEFINE SPOOL_EXT=".csv"
SPOOL &SPOOL_BASE_NAME.&PAGE_NO.&SPOOL_EXT
SELECT *
FROM (SELECT a.*,rownum rnum
FROM (SELECT username, account_status,DEFAULT_TABLESPACE,TEMPORARY_TABLESPACE FROM dba_users order by username) a
WHERE rownum <= &PAGE_SIZE * &PAGE_NO)
WHERE rnum >= &PAGE_SIZE * (&PAGE_NO - 1) + 1;
SPOOL OFF
DEFINE PAGE_NO = 2
SPOOL &SPOOL_BASE_NAME.&PAGE_NO
SELECT *
FROM (SELECT a.*,rownum rnum
FROM (SELECT username, account_status,DEFAULT_TABLESPACE,TEMPORARY_TABLESPACE FROM dba_users order by username) a
WHERE rownum <= &PAGE_SIZE * &PAGE_NO)
WHERE rnum >= &PAGE_SIZE * (&PAGE_NO - 1) + 1;
SPOOL OFF
는'당신이 사용해야합니까 이것에 대한 SQL * Plus'? 'SQL * Plus'에서 하나의 파일을 생성 한 다음 'SQL * Plus'를 호출 한 다음 작은 덩어리로 파일을 분할하는 일괄 처리 스크립트를 작성하는 것이 훨씬 더 쉬울 것입니다. 또는'utl_file'을 사용하여 루프 내에서 파일을 생성하십시오. –
저는 리눅스를 사용하고 있는데, 그 배치 파일은 어떻게 생겼을까요? – Dom
'split -l <> file_name'처럼 쉽습니다. 여기서'<>은 파일 당 원하는 행의 수입니다. http://www.theunixschool.com/2012/10/10-examples-of-split -command-in-unix.html –