2010-01-20 34 views
9

Tôi đã spooled một tập tin trước khi chạy lệnh dưới đây và nhận được kết quả như thế này,Xóa tiêu đề trong Oracle ống chỉ

tôi đã thiết lập tiêu đề ra, thông tin phản hồi tắt

SET TIÊU ĐỀ OFF SET PHẢN HỒI OFF SPOOL D: \ TEST.TXT SELECT SYSDATE FROM DUAL; spool off

OUTPUT trong test.txt:

SQL> SELECT SYSDATE FROM DUAL;

20-JAN-09

SQL> spool off

Làm thế nào tôi có thể loại bỏ hai SQL> dòng. Tôi chỉ muốn đầu ra.

Xin cảm ơn trước.

Trả lời

14

Lệnh gì bạn cần là:

SET ECHO OFF 

Tuy nhiên, nó chỉ hoạt động cho chạy mã từ kịch bản, chứ không phải lệnh được nhập vào một cách tương tác. Bạn sẽ tạo ra một tập tin kịch bản như thế này (ví dụ gọi test.sql):

SET HEADING OFF FEEDBACK OFF ECHO OFF PAGESIZE 0 
SPOOL D:\TEST.TXT 
SELECT SYSDATE FROM DUAL; 
SPOOL OFF 

Sau đó, trong SQL Plus chạy nó như thế này:

SQL> @test 

tôi thêm PageSize 0 đến lệnh SET để loại bỏ các dòng trống bạn nếu không có được trước ngày trong tập tin đầu ra.

+0

Cảm ơn Tony ý tưởng của bạn hoạt động. Và cảm ơn benjamin cho kịch bản của bạn. Chúc mừng, Seenu. –

+0

Hãy thoải mái upvote bất kỳ câu trả lời bạn thích và chấp nhận một trong những giải pháp tốt nhất giải quyết vấn đề của bạn! –

4

sử dụng này:

#!/bin/ksh 
CONNECT_STRING=dbapp/[email protected] 
SQLPLUS_SETTINGS="SET PAGESIZE 1000 LINESIZE 500 ECHO OFF TRIMS ON TAB OFF FEEDBACK OFF HEADING OFF" 
SQL_RESULT=`sqlplus -s ${CONNECT_STRING} << EOF 
${SQLPLUS_SETTINGS} 
select sysdate from dual; 
exit; 
EOF` 

echo $SQL_RESULT >output_file 
+0

Không hiển thị như vậy. Vui lòng tìm đầu ra SQL> CHỌN TỪ CHỌN TỪ DUAL; 20-JAN-10 SQL> TẮT SPOOL –

+0

kiểm tra ngay với câu trả lời sửa đổi – Vijay

+1

+ Giải pháp này không bao bọc hoặc cắt bớt các dòng. Đó là những gì tôi đang tìm kiếm. –

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