2017-10-31 59 views
7

SQLCL jest dokładnie to, czego potrzebuję, ale mam duże trudności z jednej małej rzeczy:SQLCL Batch Scripting: Auto Connection + EXPORT CSV

Chcę, aby skrypt (plik wsadowy) ze złączem automatycznym i tylko po EXPORT CSV (na zdalnym pulpicie: nie na serwerze).

Więc używam metody rury z SQLCL w pliku wsadowym:

echo SET SQLFORMAT CSV < 
echo SPOOL export.csv < 
echo SELECT COUNT(*) FROM ARTICLE; < 
echo SPOOL OFF | C:\Work\Soft\sqlcl\bin\sql.exe login/[email protected]:1521/DB.SCH 

To działa (brak błędów w konsoli), ale niemożliwe, aby znaleźć plik export.csv: przy zmianie przeznaczenia c:\... to działa również, ale nie można znaleźć utworzonego pliku. To działa dobrze z SQL Developer i plik jest tworzony na moim dekstop, więc nie rozumiem, dlaczego nie jest to ten sam przypadek dla SQLCL.

+2

Co ty oczekując '<' zrobić w skrypcie? – SomethingDark

+0

To był największy błąd w moim skrypcie, pomyliłem między równoległym poleceniem a escape char. –

+0

W swoim skrypcie dodaj "cd/path/to/where/you/want/the/file", w innym wypadku skończy się to w folderze C: \ Work \ Soft \ sqlcl \ bin \. –

Odpowiedz

0

miałem odpowiedź z platformy Oracle:

@echo off   
echo SET SQLFORMAT CSV ^& ^   
echo SET FEEDBACK OFF ^& ^   
echo SPOOL export.csv ^& ^   
echo SELECT COUNT^(*^) FROM dual ^& ^   
echo SPOOL OFF |  C:\Work\Soft\sqlcl\bin\sql.exe sql -noupdates -s -l login/[email protected]:1521/DB.SCH 

Dzięki Gaz w Oz