2013-04-13 13 views
45

Używanie sqlplus.exe Poszukuję sposobu napisania wyniku sqlplus do pliku.Zapisywanie wyniku sqlplus do pliku

Czy mogę to zrobić, obecnie dane wyjściowe są zapisywane tylko na konsoli.

+2

Komenda 'SPOOL' podana w odpowiedziach jest opisana [w dokumentacji] (http://docs.oracle.com/cd/E11882_01/server.112/e16604/ch_six.htm#i1082570). –

Odpowiedz

52

Możesz użyć polecenia SPOOL, aby zapisać informacje do pliku.

Przed wykonaniem dowolnego polecenia wpisz następujące polecenie:

SPOOL <output file path> 

wszystkich poleceń wyjście następujący zostaną zapisane do pliku wyjściowego.

Aby zatrzymać polecenia zapisu wyjściowego typu

SPOOL OFF 
29

Należy również pamiętać, że wyjście SPOOL jest napędzany przez kilka ustawień SQLPLUS:

  • SET LINESIZE nn - maksymalna szerokość linii; jeśli wynik jest dłuższy, zawinie się, aby wyświetlić zawartość każdego wiersza wyników.

  • SET TRIMSPOOL OFF|ON - jeśli ustawiono OFF (domyślnie), każda linia wyjściowa zostanie dopełniona do LINESIZE. Jeśli ustawisz ON, każda linia wyjściowa zostanie przycięta.

  • SET PAGESIZE nn - liczba linii wyjściowych dla każdego powtórzenia nagłówka. Jeśli ustawione na zero, nie jest wyprowadzany żaden nagłówek; tylko szczegół.

To są duże gadżety, ale są też inne, które należy wziąć pod uwagę, jeśli po prostu chcesz uzyskać wyjście bez całej paplarki SQLPlus.

2

Upewnij się, że masz dostęp do katalogu, który próbujesz spool. Próbowałem spoolować do katalogu głównego i nie utworzyłem pliku (np. c:\test.txt). Możesz sprawdzić, gdzie buforujesz, wydając polecenie spool.

+0

Ostatni wskaźnik przypomina tylko to, co zostało ustawione za pomocą polecenia spool. Nie daje pełnej ścieżki absolutnej, której właśnie chcę. – ADTC

+0

działa to również z Linuksem? próbowałem podając/tmp lokalizacji w moim linuxbox. Ale mam błędy: "Napotkałem symbol" SPOOL "". Czy istnieje jakieś obejście tego problemu? – uniquephase