2017-03-08 13 views
0

.bat 파일에서 .sql 파일을 실행할 필요가 있습니다. .sql 파일의 출력은 .txt 파일로 리디렉션되어야합니다. 나는 이것을 할 수 있지만 SQL 파일은 '_'에 밑줄이 쳐진 열 이름을 인쇄하고 '3 rows selected'를 인쇄하는 파일의 끝에 있습니다. 출력 파일에 열 이름과 '3 행 선택'을 표시하고 싶지 않습니다. 여기서 내가 뭘 잘못하고 있는지 지적 해 주시겠습니까? 다음은 내 코드의 세부 사항입니다. 내 sql은 sqlplus를 사용하여 oracle db에서 실행되어야합니다.배치 파일에서 SQL 스크립트를 실행하십시오. 예상대로 출력되지 않습니다.

sql_file.sql

SET HEADING OFF FEEDBACK OFF ECHO OFF PAGESIZE 0 
SET UNDERLINE off 
select 'This '|| emp_name || ' belongs to ' || dept_name || ' department' as emp_data from emplyoee; 

exit 

batch_file.bat

@echo off sqlplus -s -l scott/[email protected] @"C:\Data Files\sql_file.sql" >> "C:\Data Files\output_file.txt" 

은 내가 output_file.txt 모양을 할

This Charles employee belongs to Finance department 
This Chris employee belongs to Sales department 
This John employee belongs to Engineering department 

내 코드는 내가 개인적으로 한 줄에 SET 명령을 사용하고 있지 않다

emp_data 
-------------------------------------------------- 
This Charles employee belongs to Finance department 
This Chris employee belongs to Sales department 
This John employee belongs to Engineering department 

3 rows selected 
+0

헤더 및 트레일러 레코드를 제거하려면 해당 정보가 출력되지 않도록 쿼리를 변경하면됩니다. SQL 쿼리와 같은 것을 포함하도록 질문 태그를 변경해야합니다. 내 DB 사람들은 내게 항상 쿼리를 출력하고 헤더 및 트레일러 정보를 출력하지 않습니다. – Squashman

+0

그건 이상한거야 - 난 세트의 한 - 라이너를 포함하여 SQL 스크립트를 테스트하고 그것은 나를 위해 일하고있어. 어떤 버전을 사용하고 있습니까? (11.2.0.1에서 테스트했습니다.) –

+0

이런 종류의 문제는 다음과 같습니다. http://stackoverflow.com/questions/28689851/remove-column-header-into-the-ouput-text-file – Squashman

답변

0

로 출력을 생산하지만 ... 어쩌면이 같은 시도 : 당신은 아마 배치 파일의 코드를 사용할 수 있습니다 왜

SET HEADING OFF 
SET FEEDBACK OFF 
SET ECHO OFF 
SET PAGESIZE 0 
+0

나는 이것을 시도했지만 작동하지 않았다. 내가 느끼는 것은이 옵션들이 단순히 무시당하는 것뿐입니다. SQL 개발자가 sql_file.sql의 내용을 실행하면 원하는 방식으로 결과가 생성됩니다. 하지만 제 요구 사항은 배치 파일에서 실행하는 것입니다. – NeedBasedLearner

+0

이 링크 종류는 set 명령을 무시한다는 아이디어를 말합니다. 이 게시물에서 내가 이해하지 못하는 부분은 코드가 배치 파일 또는 .sql 파일의 일부가 될 것입니다. 이상의 것들은 배치 스크립트 (윈도우)가 아닌 셸 스크립트 (unix/linux)의 예제를 제공합니다. http://www.orafaq.com/forum/t/69493/ – NeedBasedLearner

+0

SET 명령 *을 SQL 스크립트 안에 넣고 있습니까? – BobC