Oracle SQL Developer에서 SPOOL 명령을 사용하여 SQL 쿼리의 결과를 CSV 파일로 출력하려고합니다.Oracle SQL Developer에서 spool 명령을 사용하여 CSV 파일로 쿼리 결과를 출력하는 방법
간단한 쿼리를 스크립트로 호출하여 결과를 출력 할 수 있습니다. (F5)
spool trivial_output.csv
select /*csv*/ * from trivial_table;
spool off;
을 그리고 이것은 내가 성공적으로 불리는 방법은 다음과 같습니다 : 여기 근무 쿼리는
@'C:\Spool to CSV\trivial_query.sql'
그러나, 나는 조금 더 복잡한 쿼리와 똑같은 일을 시도 할 때, 나는 오류 메시지가 : "SQL 오류 : ORA-00933를 : SQL 명령은하지 제대로 00933. 00000 종료 - SQL 명령이 제대로 종료되지"
spool total_records.csv
select /*csv*/ enrol.year, enrol.college, count(*) as "Total Records"
from enrolment enrol
inner join regis_status_type regstatus
on enrol.regis_status_type_id = regstatus.regis_status_type_id
where enrol.year in ('201213', '201314')
and regstatus.regis_status_type_code in ('10','41')
group by enrol.year, enrol.college
order by enrol.year, enrol.college
spool off;
당신은 아마 당신의 선택 절의 일부 하드 코딩 쉼표가 필요합니다. 실제로, 대학도 쉼표를 포함하고있는 경우에는 올바르게 입력하고 큰 따옴표를 붙이십시오. –
중요한지 확실하지 않지만 오라클 오류 메시지는 오류가 마지막 줄 ("스풀 오프") 바로 전에 발생한다고 말합니다. 따라서 문제는 SELECT 문보다 나중에 발생하는 것 같습니다. – b00kgrrl
두 번째 예제에서 SELECT 문 다음에 세미콜론이 누락 된 것 같습니다. 따라서 Oracle은 별도의 SQL * Plus 명령이 아닌 SQL 문의 마지막 줄로 '스풀 오프'를 해석합니다. 이는 차례로 SQL 문을 구문 적으로 무효화시킵니다. –