답변:
아룬,
이제 sqlcl은 Oracle SQL Developer 4.1 EA2 (4.1.0.18.37)에서 사용할 수 있으므로 오래되고 유명한 sqlplus와 같이 많이 사용할 수 있습니다. sqlcl에는 csv에 대한 출력 형식 설정이 있습니다.
set sqlformat csv
spool x.csv
select * from yourtable[s];
spool off
sqlcl checkout Kris '블로그 에 대한 자세한 정보
sqlcl이 가장 쉬워지기 전에 APEX를 사용하고 보고서를 csv로 내보내는 것이 가장 쉬웠습니다. 평범한 sqlplus에서는 다음을 사용하여이를 수행 할 수 있습니다
set lines 9999 -- the appropriate size
set head off -- no header lines
set colsep ';' --column separator to ;
set pages 0 -- no pages
set feed off
select your data;
spool to_tofile
/
spool off
결과가 응용 프로그램 서버 또는 클라이언트에 기록되는 경우 가장 효과적입니다. 데이터베이스 서버에 작성해야하는 경우 utl_file이 더 나은 옵션 일 수 있습니다.
로널드
내장 된 UTL_FILE 패키지를 살펴 봐야 합니다. 몇 가지 방법으로 사용할 수 있습니다.
UTL_FILE 패키지를 사용하여 여러 파일에 쓰는 패키지에 원하는 수의 프로 시저를 작성할 수 있습니다. 그런 다음 SQL * Plus를 포함한 거의 모든 응용 프로그램에서이 프로 시저를 호출 할 수 있습니다.
PL / SQL 스크립트를 작성하여 동일한 작업을 수행하고 명령 행에 @scriptname을 지정하여 SQL * Plus 명령 행 자체에서 스크립트를 호출 할 수 있습니다.
UTL_FILE을 사용하여 블록을 SQL * Plus에 직접 붙여 넣을 수는 있지만 한 번만 내보내기에 사용해야하며 최상의 경로가 아닐 수도 있습니다.
가장 간단한 방법으로 UTL_FILE을 사용하는 파일 내보내기는 FOPEN 에 대한 호출 , PUT_LINE에 대한 하나 이상의 호출 및 FCLOSE에 대한 호출로 구성 됩니다.
Python 및 cx_Oracle 모듈을 사용하여 CSV 형식으로 디스크에 데이터를 추출 할 수 있습니다.
cx_Oracle을 사용하여 Oracle에 연결하는 방법은 다음과 같습니다.
constr='scott/tiger@localhost:1521/ORCL12'
con = cx_Oracle.connect(constr)
cur = con.cursor()
데이터를 가져온 후 Python 목록을 반복하여 데이터를 CSV 형식으로 저장할 수 있습니다.
for i, chunk in enumerate(chunks(cur)):
f_out.write('\n'.join([column_delimiter.join(row[0]) for row in chunk]))
f_out.write('\n')
TableHunter-For-Oracle을 작성할 때이 방법을 사용했습니다.