2016-08-16 2 views
1

스풀을 사용하여 선택한 쿼리 출력을 텍스트 파일로 내보내야합니다. 기본적으로 출력은 컬럼 주위에 큰 따옴표를 추가합니다. 그것을 방지하는 방법? 쿼리에서 하나의 열만 반환합니다.oracle에서 csv로 스풀링하는 동안 열을 큰 따옴표로 묶지 마십시오.

출력에서 ​​머리글과 큰 따옴표를 제거해야하는 것이 이상적입니다. 아래는 Oracle Developer에서 사용하는 스크립트 파일입니다. 그러나 제목은 또한 제거되지 않습니다. 출력

"PCG" 
"76259737020150320000504281565213310052440093515652109.2909.290101" 
"19519905620160502000504283153419040044861008644759203.3903.390101" 
"49424051620160220000504284594314590009220713032964404.3804.380202" 
"88761197020151025000504284594315180036700812132964401.9901.990101" 
+0

[Oracle/SQL * Plus에서 CSV 파일을 따옴표없이 스풀링] (http://luckylarry.co.uk/programming-tutorials/oracle/spool-a-csv-file-from-oracle- sqlplus-without-quotes /) ... – Plirkee

+0

@ Plirkee .. 링크를 확인하십시오. 작동하지 않습니다. – XING

+0

@Raj_Te ok - 고치다. – Plirkee

답변

5

당신은 /*csv*/ 지시문 이중 따옴표를 제거 할 수 없습니다. 지금이 작업을 수행하는 약간 더 편리한 방법은 sqlformat 명령을 사용하는 것이지만 sqlformat delimitedyou have to have the string enclosed을 사용하는 것입니다.

한 열에 대해 CSV 형식을 사용하면 문자열에서 구분 기호를 사용하지 않는 한 도망 가고 싶지 않습니다. 해당 열을 실제로 내보내고 구분 기호가없는 경우 /*csv*/ 지시문을 사용하지 마십시오. 구분 기호를 포함 할 수있는 여러 열이나 문자열이있는 경우 엔클로저는 Excel이나 다른 외부 도구에서 열 때 해당 구분 기호가 잘못 해석되는 것을 방지하는 데 유용합니다.

당신이 정말로 원하는 경우 CSV 여전히 파일로 스풀 할 수 있습니다 쉼표 리터럴과 컬럼 (들), 연결하여 출력을 수동으로 구축 할 수 있습니다 인클로저없이 형식 :

select pcg ||','|| some_other_col ||','|| etc from ... 

또는 당신을 문 실행 (Ctrl-Enter)을 사용하여 쿼리를 실행 한 다음 출력을 마우스 오른쪽 버튼으로 클릭 할 때 나타나는 컨텍스트 메뉴에서 데이터 그리드의 결과를 내보낼 수 있습니다. CSV 또는 구분 된 형식을 내보내고 선택할 때 머리글과 사용할 구분 문자 및 첨부 물을 포함할지 여부를 선택할 수 있으며 '없음'을 선택할 수 있습니다. 각 수출에 그를 설정하지 않으려면 당신은 도구 -> 환경 설정에서 기본값으로 설정할 수 있습니다 : 당신은 비록 /*csv*/ 지시 또는 sqlformat csv 함께 할 수 없습니다

enter image description here

.

+0

완벽한! CSV 지시문을 제거하고 큰 따옴표뿐만 아니라 두 헤더를 모두 제거했습니다. 고마워. 하지만 "n 개의 행이 선택되었습니다"라는 마지막 행의 메시지가 나타납니다. 너무 피할 수 있을까요? – kten

+1

알았어. "피드백 설정 해제" – kten

0

따옴표는 당신이 그들을 제거하기 위해 트림() 함수를 사용할 수있는 데이터의 일부 경우

set echo off 
SET HEADING OFF 
SET PAGESIZE 0 
SET COLSEP '' 
spool 'D:\public\cvs_txPCG.txt' 
select /*csv*/ 
pcg from temptx; 
spool off; 

. 트림 기능

select /*csv*/ 
trim(both '"' from pcg) as pcg from temptx; 

오라클 문서 : https://docs.oracle.com/cd/B19306_01/server.102/b14200/functions199.htm

+0

큰 따옴표는 데이터의 일부가 아닙니다. – kten

관련 문제