2017-03-02 2 views
1

SqlDeveloper (버전은 4.1.5.21)를 사용하여 여러 테이블을 세미콜론으로 구분 된 파일로 내보내려고합니다.SqlDeveloper SPOOL : 빈 줄 첫 번째 줄

현재 나는 괜찮 스크립트에 각 테이블에 대해

SET SQLFORMAT delimited 
spool ..\dir\table1.csv 
select * from table1; 
spool off; 

를 사용합니다.

결과 파일의 첫 줄이 비어있는 것이 문제입니다. 어떻게 든 그것을 삭제할 수 있습니까? 몇 가지 연구를 해봤는데 SqlPlus에서 SqlDeveloper에서 구현되지 않은 기능을 처리하는 것처럼 보입니다.

SqlPlus에서도 동일한 작업을 수행하려고했지만 SqlDeveloper에서 생성 된 결과에 근접하지 않았습니다.

스풀을 사용하여 빈 줄을 제거 할 수없는 경우 SqlDeveloper를 실행하지 않고 결과를 표시하기 위해 사용할 수있는 sql inbuilt 함수가 있는지 확인한 다음 적절하게 bash 스크립트를 실행해야합니다. 파일? 누군가가이 질문에 실수를 한단다 경우

+0

당신이 찾고있는 결과 (출력) 란 무엇입니까? – BobC

+0

4.2.0.16.356에 빈 줄이 보이지 않습니다 (맨 위가 아니라 파일 맨 아래에 하나 얻습니다). 그것이 버전에 특정한 동작인지 확실하지 않습니다. - 여러분이 보여준 것보다 스크립트 (또는 세션)가 다른 int 일을하고 있습니까? 다른'set' 명령은? –

+1

그래, 4.1.15에서 실제로 복제 할 수 있으므로 동작이 변경 (수정 되었습니까?) 4.2.0 (여전히 얼리 어답터)에서 변경되었습니다. 나는 4.1.15가 똑같이 행동 할 수있는 방법을 찾지 못했습니다. 당신은'set pagesize 0'으로 이것을 해결할 수 있었지만, 그 버전에서는 0을 사용할 수 없습니다. (덧붙여 말하자면, 4.2.0은 스풀의 작동 방식을 변경 한 것 같습니다 - 별도의 @를 사용하지 않고 직접 코드를 실행하는 것이 더 이상 [SQL 문에 반영] (http://stackoverflow.com/q/19033943/266304), 그것은 멋지다). –

답변

0

는 알렉스으로

이 코멘트에 지적이 SqlDeveloper의 버전 4.1.15 (그리고 아마도 이전 버전)의 버그입니다. 제거하려면 4.2.0으로 업그레이드하십시오.

나 같은 사람이라면 이전 버전에서 벗어난 이유로 sqldeveloper와 함께 제공되는 sqlcl을 사용하여 설명 된 문제없이 스크립트를 실행할 수 있습니다.

내 .SQL 스크립트는 다음과 같습니다

SET ECHO OFF 
SET FEEDBACK OFF 
SET sqlformat delimited ; " " 

spool ..\relative\path.csv 
select * from table1; 

SPOOL OFF; 
QUIT;