Export csv
.sql 파일 작성
set echo off
set pages 0
set trimspool on
set colsep ','
set lines 10000
set termout off
set feed off
set markup csv on
--Date Format
ALTER SESSION SET NLS_DATE_FORMAT = 'YYYY/MM/DD HH24:MI:SS';
spool /aaa/table_name.csv;
SELECT * FROM table_name;
spool off
quit
SELECT * FROM table_name;
이런 쿼리라면 빈 공간이 전부 스페이스로 채워지는 현상이 생기기 때문에 쿼리를 변형해서 사용
set markup csv on
옵션을 사용하면 csv 포맷에 맞춰서 출력됨
csv 추출
sqlplus -S user_name/password @sqlfile_name.sql
참고
- sql 파일의 set 옵션
추출 쿼리 작성 set markup csv on
옵션을 사용하면 해당 쿼리를 쓰지 않아도 됨
SELECT 'SELECT'
FROM DUAL
UNION ALL
SELECT '''"''||' || column_name || '||''",''||'
FROM ALL_TAB_COLUMNS
WHERE owner = 'owner_name' AND table_name = 'table_name'
UNION ALL
SELECT 'FROM owner_name.table_name;'
FROM DUAL;
--결과에서 마지막 컬럼의 ||'",'|| → ||'"'로 변경
/*
SELECT
'"'||column_name1||'",'||
'"'||column_name2||'",'||
...
'"'||column_name8||'",'||
'"'||column_name9||'",'|| → '"'||column_name9||'"'
FROM owner_name.table_name;
*/