2010-01-12 6 views

답변

8

:

How can I issue a single command from the command line through sql plus?

@echo select version from system; | sqlplus username/[email protected] 

당신은 어느 파이프 파일로 출력이 그를 사용하거나 배치 파일에서 출력을 구문 분석 할 for 명령이 포장 할 수 있습니다.

+0

정확히 무엇을 찾고 있었습니까 ... 고마워요 :) – Pia

+0

@ patrick .. 출력을 위의 파일? – Sunny

+0

@Sunny; '@echo 시스템에서 버전 선택; | sqlplus 사용자 이름/암호 @ 데이터베이스> file.ext'. –

5

편집 :이 답변은 SQL Server가 아닌 오라클에 대한 것입니다. (질문이 게시 될 때 즉시 명확하지 않음).

sqlcmd 유틸리티를 확인하십시오.

sqlcmd 유틸리티를 사용하면 명령 프롬프트에서 Transact-SQL 문, 시스템 프로 시저 및 스크립트 파일을 입력 할 수 있습니다. 다음 예제에서는 sqlcmd가 시작될 때 쿼리를 실행 한 다음 즉시 종료합니다. 다중 세미콜론으로 구분 된 쿼리를 실행할 수 있습니다 :

sqlcmd -d AdventureWorks -Q "SELECT FirstName, LastName FROM Person.Contact WHERE LastName LIKE 'Whi%';" 

당신이 -o C:\< filename> 옵션을 사용하여 파일에 쿼리의 출력을 저장합니다.

+2

SQL 서버의 경우이 값은 – Pia

0

명령 줄 SQL 유틸리티가있는 경우 명령 줄 작업이 가능할 가능성이 큽니다. 귀하의 SQL 버전에 따르면 그것을 확인할 수 있습니다.

3

이것은 쿼리를 실행하는 데 사용하는 도구에 따라 다릅니다. 예를 들어, the mysql command line tool를 들어, 당신은 할 줄 :

mysql -u<user> -p<password> -h<host> -Nrs -e"SELECT version() FROM system" > out.txt 

을 여기에, mysql -u<user> -p<password> -h<host>가 서버에 연결할 수있는 표준 옵션입니다가는 조각을. -Nrs은 클라이언트가 결과에 대한 모든 아스키 아트를 출력하지 못하도록하는 일련의 옵션입니다. 실제로는 -e"SELECT version() FROM system" 비트가 실행되어야하는 명령을 지정합니다. mysql 특정 옵션에 대한 자세한 내용은 http://dev.mysql.com/doc/refman/5.1/en/mysql-command-options.html을 참조하십시오. 사용할 클라이언트 도구에서 유사한 옵션을 찾으십시오.

마지막 비트 인 > out.txt은 표준 운영 체제 수준 리디렉션입니다. mysql 프로그램의 출력은 out.txt 파일에 저장되지만, NSIS 프로그램으로 직접 리디렉션 할 수도 있습니다.

2

가 query.sql 데이터베이스 쿼리를 포함하고의 Result.txt이 쿼리 출력 채워집니다

sqlplus user/[email protected] @query.sql > result.txt 

을보십시오.

쿼리에 따라 출력 파일이 예상 한대로 (예 : sqlplus의 열 머리글 등), query.sql에 출력을 사용자의 필요에 맞게 조정할 수있는 SET 명령이 있어야합니다.

또 다른 방법은 결과를 파일로 파이핑하는 대신 Oracle SPOOL 명령을 사용하는 것입니다.Oracle의 경우

+0

으로 훌륭하지만 열의 형식이 잘 맞지 않습니다 ... –

관련 문제