2010-01-12 18 views

Odpowiedz

8

Dla Oracle:

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

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

Można albo rura wyjście do pliku i użyć jej, lub owinąć to w poleceniu for do analizowania danych wyjściowych w pliku wsadowym.

+0

To jest dokładnie to, czego szukałem .. Dzięki :) – Pia

+0

@ patrick..how możemy potokować wyjście do plik powyżej? – Sunny

+0

@Sunny; '@echo wybierz wersję z systemu; | sqlplus nazwa_użytkownika/hasło @ baza danych> file.ext'. –

5

EDYCJA: Ta odpowiedź dotyczy SQL Server, a nie Oracle. (Nie było od razu jasne, kiedy pytanie zostało wysłane).

Może zajść potrzeba sprawdzenia narzędzia sqlcmd.

Narzędzie sqlcmd umożliwia wprowadzanie instrukcji Transact-SQL, procedur systemowych i plików skryptów w wierszu polecenia. Poniższy przykład wykonuje kwerendę przy uruchamianiu sqlcmd, a następnie natychmiast kończy działanie. Wiele-rozdzielany średnikami zapytania mogą być wykonywane:

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

Aby zapisać wynik kwerendy do pliku, można użyć opcji -o C:\< filename>.

+2

Dla SQL Server to działa idealnie – Pia

0

Jeśli masz narzędzie wiersza polecenia SQL, które najprawdopodobniej pozwoli to operacje wiersza polecenia. Zgodnie z wersją SQL możesz to sprawdzić.

3

To zależy od narzędzia, którego używasz do wykonywania zapytań. Na przykład, dla the mysql command line tool, można zrobić:

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

Tutaj kawałek, który przechodzi mysql -u<user> -p<password> -h<host> są standardowe opcje, aby połączyć się z serwerem. -Nrs to zestaw opcji, które spowodują, że klient nie wyświetli wszystkich efektów ASCII dla wyników. Bit, który przechodzi -e"SELECT version() FROM system" faktycznie określa polecenie, które powinno zostać wykonane. Zobacz http://dev.mysql.com/doc/refman/5.1/en/mysql-command-options.html, aby uzyskać więcej informacji na temat tych opcji specyficznych dla mysql. Poszukaj podobnych opcji w narzędziu klienta, którego chcesz użyć.

Ostatni bit, > out.txt, jest standardowym przekierowaniem na poziomie systemu operacyjnego. Spowoduje to, że dane wyjściowe z programu mysql będą przechowywane w pliku out.txt, ale możliwe, że przekierujesz bezpośrednio do swojego programu NSIS.

2

Spróbuj

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

gdzie query.sql zawierający zapytania do bazy danych i Result.txt zostaną wypełnione z wyjściem zapytania.

W zależności od zapytania, plik wyjściowy może nie być zgodny z oczekiwaniami (nagłówki kolumn itp. Są typowe dla sqlplus), więc zapytanie.sql powinno zawierać pewne polecenia SET, aby dopasować wyjście do swoich potrzeb.

Inną metodą jest użycie polecenia Oracle SPOOL zamiast przeskanowania wyniku do pliku.

+0

jest dobre, ale formatowanie kolumn nie jest dobrze ... –

Powiązane problemy