2010-01-12 32 views

Trả lời

8

Đối với Oracle:

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

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

Bạn có thể đường ống đầu ra vào một tập tin và sử dụng đó, hoặc quấn này trong một lệnh for để phân tích đầu ra trong tập tin thực thi của bạn.

+0

Thats chính xác những gì tôi đang tìm kiếm..Cảm ơn :) – Pia

+0

@ patrick..how chúng tôi có thể dẫn đầu ra tệp ở trên? – Sunny

+0

@Sunny; '@echo chọn phiên bản từ hệ thống; | sqlplus username/password @ database> file.ext'. –

5

EDIT: Câu trả lời này là dành cho SQL Server chứ không phải Oracle. (Không rõ ngay khi câu hỏi được đăng).

Bạn có thể muốn kiểm tra tiện ích sqlcmd.

Tiện ích sqlcmd cho phép bạn nhập câu lệnh Transact-SQL, quy trình hệ thống và tệp tập lệnh tại dấu nhắc lệnh. Ví dụ sau thực hiện một truy vấn khi sqlcmd bắt đầu và sau đó thoát ngay lập tức. truy vấn nhiều dấu chấm phẩy được phân định có thể được thực thi:

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

Để lưu kết quả của truy vấn vào một tập tin, bạn có thể sử dụng tùy chọn -o C:\< filename>.

+2

Đối với SQL Server hoạt động hoàn hảo – Pia

0

Nếu bạn có tiện ích dòng lệnh SQL, hầu hết có thể nó cho phép các thao tác dòng lệnh. Theo phiên bản SQL của bạn, bạn có thể kiểm tra nó.

3

Điều này phụ thuộc vào công cụ bạn sử dụng để thực hiện truy vấn. Ví dụ, đối the mysql command line tool, bạn muốn làm:

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

Ở đây, mảnh mà đi mysql -u<user> -p<password> -h<host> là những tùy chọn tiêu chuẩn để kết nối với máy chủ. -Nrs là một tập hợp các tùy chọn sẽ khiến khách hàng không xuất tất cả các nghệ thuật ascii cho kết quả. Các bit đi -e"SELECT version() FROM system" thực sự chỉ định lệnh cần được thực hiện. Xem http://dev.mysql.com/doc/refman/5.1/en/mysql-command-options.html để biết thêm thông tin về các tùy chọn cụ thể của mysql đó. Tìm các tùy chọn tương tự trong công cụ máy khách mà bạn muốn sử dụng.

Bit cuối cùng, > out.txt là chuyển hướng cấp hệ điều hành tiêu chuẩn. Nó sẽ gây ra đầu ra đến từ chương trình mysql được lưu trữ trong một tệp out.txt, nhưng có lẽ bạn cũng có thể chuyển hướng trực tiếp đến chương trình NSIS của bạn.

2

Hãy thử

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

nơi query.sql chứa các truy vấn cơ sở dữ liệu và result.txt sẽ được lấp đầy với sản lượng truy vấn.

Tùy thuộc vào truy vấn, tệp đầu ra có thể không giống như bạn mong đợi (tiêu đề cột v.v ... như sqlplus), do đó query.sql của bạn nên chứa một số lệnh SET để điều chỉnh đầu ra theo nhu cầu của bạn.

Phương pháp khác là sử dụng lệnh Oracle SPOOL thay vì đường dẫn kết quả vào tệp.

+0

nó tốt nhưng định dạng của các cột không được tốt ... –

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