2008-09-19 25 views

Trả lời

-4

Kiểm tra các tài liệu của Oracle:

Bạn có thể tạo một tab trong Oracle bằng cách sử dụng giá trị của tab ASCII 9 và chức năng chr:

select chr(9) from dual; 
+1

liên kết bị hỏng và chúng không cung cấp câu trả lời ngắn gọn hữu ích. Xem xét mô tả giải pháp và cung cấp liên kết dưới dạng tham chiếu bổ sung. – BenjaminGolder

3

Một tập lệnh cụ thể mà tôi có tolen trên nhiều hơn một lần xuất phát từ một chuỗi AskTom trên extracting data to a flat file. Nếu tôi cần một tập tin phẳng nhanh chóng và bẩn trong SQL * Plus. Tôi sẽ có xu hướng thích các chức năng DUMP_CSV Tom đăng trước đó trên thread đó cho bất kỳ loại quá trình liên tục, mặc dù.

8

Như Justin đã chỉ ra trong liên kết của mình, bằng cách sử dụng lệnh set colsep hàm SQLPlus, hãy lưu gõ dấu tách cho mỗi cột.

Nhưng đối với tab được phân tách, set colsep Chr(9) sẽ không hoạt động.

Đối với UNIX hoặc LINUX, hãy sử dụng set colsep ' ' với khoảng cách giữa dấu nháy đơn là tab được nhập.

Đối với Windows, sử dụng các thiết lập này:

col TAB# new_value TAB NOPRINT 
select chr(9) TAB# from dual; 
set colsep "&TAB" 

select * from table; 
1

tôi nhận được một giải pháp ngu ngốc. Nó hoạt động rất tốt.

Giải pháp

SELECT column1 || CHR(9) || column2 || CHR(9) || column3 ... ... 
FROM table 

nguyên tắc đằng sau

Trên thực tế, nó chỉ là một nối chuỗi.

CHR (9) -> '\ t'

column1 || CHR (9) || cột2 ->concat (cột1, '\ t', cột2)

+0

Cảnh báo: thực hiện thao tác này sẽ cắt bớt đầu ra của bạn cho dòng ngay khi bắt gặp ký tự dòng mới trong một trong các giá trị. – nodmonkey

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