콘텐츠로 이동

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 옵션을 사용하면 해당 쿼리를 쓰지 않아도 됨 ```sql 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; / ```