2017-10-31 26 views
7

SQLCL là chính xác những gì tôi cần, nhưng tôi đã gặp khó khăn lớn về một điều nhỏ:SQLCL Batch Scripting: Tự động kết nối + xuất CSV

Tôi muốn tạo một tập lệnh (tệp hàng loạt) với kết nối Tự động và chỉ sau khi xuất CSV (trên máy tính từ xa: không phải trên máy chủ).

Vì vậy, tôi đang sử dụng phương pháp ống với SQLCL trong một tập tin Batch:

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 

Đó là làm việc (không có lỗi trong giao diện điều khiển), nhưng không thể tìm thấy các tập tin export.csv: khi tôi thay đổi điểm đến c:\... nó làm việc quá nhưng không thể tìm thấy tệp đã tạo. Nó làm việc tốt với SQL Developer và tập tin được tạo ra trên dekstop của tôi, vì vậy tôi không hiểu tại sao nó không phải là trường hợp tương tự cho SQLCL.

+2

Bạn đang mong đợi các '<' để làm trong kịch bản? – SomethingDark

+0

Đó là lỗi lớn nhất trong kịch bản của tôi, tôi đã nhầm lẫn giữa lệnh song song và thoát khỏi char. –

+0

Trong kịch bản của bạn thêm "cd/path/to/where/you/want/the/file" nếu không nó sẽ kết thúc trong thư mục C: \ Work \ Soft \ sqlcl \ bin \. –

Trả lời

0

tôi đã có câu trả lời từ Cương lĩnh 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 

Thank để Gaz trong Oz

Các vấn đề liên quan