Oracle
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Oracle

Tạo Bảng tính Excel từ Cơ sở dữ liệu Oracle

Tôi cho rằng vấn đề là, "cấu trúc phức tạp" của bạn phức tạp đến mức nào?

Các IDE lập trình như Oracle SQL Developer hoặc Quest TOAD có các trình hướng dẫn để xuất bảng dữ liệu sang tệp CSV.

Nếu bạn muốn kết hợp dữ liệu từ nhiều bảng, bạn có thể sử dụng dạng xem hoặc thậm chí viết câu lệnh SQL

select e.ename||','||d.dname
from   emp e
       join dept d on ( e.deptno = d.deptno )
/

(đánh số lại các cột thường có thể chứa dữ liệu bao gồm dấu phẩy, vì vậy bạn có thể muốn sử dụng một ký tự khác thường hơn - hoặc tập hợp các ký tự - làm dấu phân tách.)

Một cách nhanh chóng khác để làm điều đó là sử dụng chức năng báo cáo HTML của SQL * Plus. Nhiều công cụ bảng tính có thể nhập HTML và XML có cấu trúc tốt mà không gặp khó khăn. Tìm hiểu thêm.

Nếu bạn muốn làm phẳng một cấu trúc phân cấp hoặc một thứ gì đó phức tạp hơn nữa, bạn có thể cần phải chuyển sang PL / SQL. Phương pháp cuộn thủ công sẽ sử dụng một biến thể của câu lệnh trên được trang bị để sử dụng UTL_FILE:

declare
    csv_fh  utl_file.filetype;
begin
    csv_fh := utl_file.fopen('C:\temp', 'data_export.csv', 'W');
    for r in   (  select e.ename, d.dname
                  from   emp e
                  join dept d on ( e.deptno = d.deptno )
                ) loop
        utl_file.put_line(csv_fh, r.ename||'|'||r.dname;
    end loop;
    utl_file.fclose(csv_fh);
end;

Nếu bạn muốn xuất cụ thể sang Excel (tức là tệp .XLS) thì bạn cần phải vượt ra ngoài các tích hợp sẵn của Oracle. Giải pháp thông thường để xuất thẳng từ PL / SQL sang Excel là trình bao bọc OWA_SYLK của Tom Kyte cho api SYLK. Tìm hiểu thêm.

Điều này hoạt động với các trang tính đơn lẻ. Nếu bạn muốn xuất sang nhiều trang tính, có một số giải pháp thay thế.

Sanjeev Sapre có gói get_xl_xml của anh ấy. Như tên cho thấy nó sử dụng XML để thực hiện chuyển đổi. Tìm hiểu thêm.

Jason Bennett đã viết một đối tượng PL / SQL tạo ra một tài liệu Excel XML. Tìm hiểu thêm.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. TO_CHAR của một loại Oracle PL / SQL TABLE

  2. Bảo mật cơ sở dữ liệu Oracle - Mã hóa và giải mã

  3. Số Oracle thành số thập phân C #

  4. Làm cách nào để đếm số từ trong một chuỗi trong Oracle?

  5. SQL Tiếp tục gặp lỗi với BẬT CẬP NHẬT CASCADE