2013-04-13 53 views
45

Sử dụng sqlplus.exe Tôi đang tìm cách viết đầu ra sqlplus vào tệp.Viết đầu ra sqlplus vào một tệp

Có cách nào tôi có thể làm điều đó, hiện tại đầu ra chỉ được viết cho bảng điều khiển.

+2

Lệnh 'SPOOL' được đưa ra trong các câu trả lời được mô tả [trong tài liệu] (http://docs.oracle.com/cd/E11882_01/server.112/e16604/ch_six.htm#i1082570). –

Trả lời

52

Bạn có thể sử dụng lệnh SPOOL để ghi thông tin vào tệp.

Trước khi thực hiện bất kỳ lệnh gõ như sau:

SPOOL <output file path> 

Tất cả các lệnh đầu ra sau đây sẽ được ghi vào tập tin đầu ra.

Để dừng lệnh đầu ra bằng văn bản loại

SPOOL OFF 
29

Cũng lưu ý rằng đầu ra SPOOL được thúc đẩy bởi một vài thiết lập sqlplus:

  • SET LINESIZE nn - dòng chiều rộng tối đa; nếu đầu ra dài hơn, nó sẽ bọc để hiển thị nội dung của mỗi hàng kết quả.

  • SET TRIMSPOOL OFF|ON - nếu đặt OFF (mặc định), mọi dòng đầu ra sẽ được đệm thành LINESIZE. Nếu đặt ON, mọi dòng đầu ra sẽ được cắt.

  • SET PAGESIZE nn - số dòng để xuất cho mỗi lần lặp lại tiêu đề. Nếu được đặt thành 0, không có đầu trang là đầu ra; chỉ là chi tiết.

Đó là những vấn đề lớn, nhưng có một số khác cần xem xét nếu bạn chỉ muốn đầu ra mà không có tất cả các cuộc trò chuyện của SQLPlus.

2

Đảm bảo rằng bạn có quyền truy cập vào thư mục mà bạn đang cố gắng đẩy. Tôi đã cố gắng để spool để root và nó đã không tạo ra các tập tin (ví dụ: c:\test.txt). Bạn có thể kiểm tra nơi bạn đang spooling bằng cách phát hành spool lệnh.

+0

Con trỏ cuối cùng chỉ lặp lại những gì đã được thiết lập bằng cách sử dụng lệnh spool. Nó không cung cấp cho con đường tuyệt đối đầy đủ mà là những gì tôi muốn. – ADTC

+0

có hoạt động với Linux không? tôi đã thử bằng cách cho/tmp vị trí trong linuxbox của tôi. Nhưng tôi có lỗi: 'Gặp phải biểu tượng "SPOOL"'. Có cách giải quyết nào cho vấn đề này không? – uniquephase

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