2009-06-11 33 views
5

Cách xem dữ liệu BLOB, tôi có thể xuất dữ liệu đó sang tệp văn bản không? Tôi đang sử dụng Oracle SQL developer 5.1. Khi tôi đã cố gắngXem dữ liệu BLOB có chứa văn bản ở định dạng XML

select utl_raw.cast_to_varchar2(dbms_lob.substr(COLNAME)) 
    from user_settings where <fieldname>=... 

Nó trả về lỗi sau: ORA-06502 PL/SQL : numeric or value error : raw variable length too long

Các BLOB chứa văn bản ở định dạng XML.

Trả lời

1

Dữ liệu BLOB thường chỉ là ... một đốm màu nhị phân của dữ liệu.

Chắc chắn, bạn có thể xuất nó sang một tệp văn bản bằng cách chuyển đổi nó thành một dạng biểu diễn văn bản nào đó ... Nhưng nếu đó là hình ảnh thì sao?

jaganath: Bạn cần phải ngồi xuống và tìm ra những gì nó là bạn đang làm việc với, và sau đó tìm hiểu những gì nó là bạn cần phải làm.

+0

Quên đề cập, BLOB chứa văn bản ở định dạng XML –

0

Từ thông báo lỗi có vẻ như độ dài blob là quá dài để phù hợp với một varchar. Bạn có thể thực hiện chuyển đổi trong mã ứng dụng của bạn và viết XML thành một Chuỗi hoặc tệp.

1

Bạn có thể nhìn vào DBMS_LOB.CONVERTTOCLOB

Nhưng nếu nó là XML, tại sao lưu nó trong một BLOB chứ không phải là một XMLType (hoặc CLOB)

6

Để xem dữ liệu xml lưu trữ như một BLOB, làm tiếp theo;

  1. Mở giao diện bảng, với tab Data chọn
  2. Kích đúp vào giá trị trường của cột, và một nút bút chì sẽ xuất hiện trong lĩnh vực này. Nhấp vào nút bút chì. Pencil Button
  3. Cửa sổ Chỉnh sửa giá trị sẽ mở, nhấp vào hộp kiểm cho 'Xem dưới dạng: Văn bản'. Từ cửa sổ này, bạn cũng có thể lưu bất kỳ dữ liệu tệp cụ thể nào mà bạn yêu cầu. Select the view type

PS: Tôi đang chạy phiên bản Developer Oracle SQL 3.1.05

3

Nguyên nhân nó so với kích thước của lĩnh vực hiển thị. Bạn cần đặt kích thước Bạn thêm 1500 cho số substr, nó sẽ hoạt động.

select utl_raw.cast_to_varchar2(dbms_lob.substr(colname,1500)) 
from user_settings where <row_id>=... 
Các vấn đề liên quan