아래와 같은 쉘 스크립트를 사용하여 특정 테이블의 두 열(필드)을 다음과 같이 csv 파일로 스풀링합니다.
#!/usr/bin/bash
FILE="emp.csv"
sqlplus -s scott/tiger@XE <<EOF
SET PAGESIZE 50000
SET COLSEP ","
SET LINESIZE 200
SET FEEDBACK OFF
SPOOL $FILE
SELECT name,city FROM EMP;
SPOOL OFF
EXIT
EOF
하지만 결과 csv 파일이 너무 커서 내 편집기에서 열 수 없습니다. 레코드를 더 작고 열 수 있는 여러 csv 파일로 분할할 수 있는 방법이 있습니까? 특정 값을 초과하면 데이터가 다른 파일로 스풀링되도록 일부 카운터를 사용할 수 있습니까?
답변1
cat emp.csv | split -l 6000
이 경우 6000줄 길이의 작은 파일 묶음이 생성됩니다. 기본값은 xaa
등 xab
이지만 변경할 수 있습니다. 에 대한 매뉴얼 페이지를 참조하세요 split
.