Cách lấy đầu ra sql ở định dạng html

Gần đây tôi có một dự án mà tôi cần tạo một số báo cáo như một phần của quy trình tải dữ liệu tổng thể được lên lịch thông qua một công việc định kỳ trên máy chủ Linux. Trong hơn 20 năm phát triển các ứng dụng và quy trình sử dụng các công nghệ của Oracle, SQL*Plus thường không nằm ở đầu danh sách của tôi về việc tạo các báo cáo có định dạng tốt và đẹp mắt. Tuy nhiên, đôi khi, điều này trở thành giải pháp thuận tiện và tiết kiệm chi phí nhất nếu bạn không được cấp phép cho một công cụ báo cáo khác. Trên thực tế, một đồng nghiệp đã nhắc tôi về tùy chọn tạo báo cáo HTML thông qua SQL*Plus, điều này hóa ra lại là một giải pháp hoàn hảo cho dự án này

Mục đích của blog này là chỉ ra cách bạn có thể dễ dàng thực hiện một truy vấn được thực hiện thông qua SQL*Plus và tạo báo cáo HTML cho phép định dạng tùy chỉnh và có thể được xem qua trình duyệt

Hãy bắt đầu với một báo cáo cơ bản liệt kê các phòng ban và thông tin nhân viên trong lược đồ nhân sự mẫu được cung cấp cùng với cơ sở dữ liệu Oracle XE

set termout off
ttitle center "Employee Listing by Department" skip 2
btitle center "Confidential"
spool myreport1.txt
select dept.department_name,
       emp.last_name,
       emp.first_name,
       emp.salary
from hr.employees emp
join hr.departments dept on (dept.department_id = emp.department_id)
order by 1,2,3;

exit

 

Mẫu đầu ra cho báo cáo trên, chạy qua SQL*Plus, sẽ giống như sau

                 
Cách lấy đầu ra sql ở định dạng html
Cách lấy đầu ra sql ở định dạng html

Như bạn có thể thấy, định dạng mặc định của đầu ra truy vấn cho SQL*Plus không tạo ra một báo cáo có thể chấp nhận được trong hầu hết các trường hợp, đặc biệt là khi nhiều cột dữ liệu sẽ được trả về

Tuy nhiên, chúng ta có thể dễ dàng thực hiện một số định dạng trong SQL*Plus để làm cho đầu ra dễ nhìn hơn một chút bằng cách đặt tiêu đề, kích thước dòng và trang cũng như định dạng cột. Đây là truy vấn ban đầu với một số định dạng bổ sung được thêm vào

set termout off
set linesize 180
set pagesize 20
ttitle center 'Employee Listing by Department' skip 2
btitle center 'Confidential'
column department_name format a40 heading "Department"
column last_name format a40 heading "Last Name"
column first_name format a30 heading "First Name"
column salary format 9999999 heading "Salary"

spool myreport2.txt
select dept.department_name,
emp.last_name,
emp.first_name,
emp.salary
from hr.employees emp
join hr.departments dept on (dept.department_id = emp.department_id)
order by 1,2,3;
exit

 

Mẫu đầu ra cho báo cáo trên, với định dạng bổ sung này, sẽ giống như sau

Cách lấy đầu ra sql ở định dạng html

                     
Cách lấy đầu ra sql ở định dạng html

Với định dạng bổ sung này, báo cáo bắt đầu trông đẹp hơn. Tuy nhiên, bạn vẫn cần chỉ định độ dài của tất cả các cột, cũng như kích thước dòng để dữ liệu vừa với một dòng hoặc được định dạng theo cách dễ đọc. Nó vẫn là một tệp văn bản và nếu được mở bằng Microsoft Word hoặc WordPad mà không có phông chữ đơn cách, căn chỉnh sẽ bị tắt

Tuy nhiên, bằng cách chỉ định đánh dấu HTML trong báo cáo SQL*Plus của chúng tôi, nhiều vấn đề về định cỡ và căn chỉnh được trình duyệt xử lý thay thế. Chúng tôi cũng có khả năng thu hút sự chú ý đến các ô hoặc giá trị cụ thể. Dưới đây là báo cáo SQL*Plus trước đó có thêm định dạng HTML. Như bạn có thể thấy, chúng tôi đã thêm các thẻ HTML bổ sung để hiển thị thông tin “bí mật” ở chân trang và làm nổi bật mức lương trên $7500 bằng màu vàng

set termout off
set linesize 90
set pagesize 20
ttitle center 'Employee Listing by Department' skip 2
btitle center 'Confidential'
column department_name format a20 heading "Department"
column last_name format a30 heading "Last Name"
column first_name format a20 heading "First Name"
column salary format 9999999 heading "Salary"

set markup html on spool on entmap off

spool myreport3.htm
select dept.department_name, emp.last_name, emp.first_name,

case when emp.salary > 7500 then
         '' || to_char(emp.salary) || ''
       else
         to_char(emp.salary)
       end as salary

from hr.employees emp
join hr.departments dept on (dept.department_id = emp.department_id)
order by 1,2,3;

exit

 

Chỉ với một vài thay đổi đối với tệp SQL gốc (được in đậm), chúng tôi có thể tạo tệp đầu ra ở định dạng HTML và thêm đánh dấu bổ sung vào dữ liệu cột và tiêu đề. Tệp kết quả có thể được mở bằng trình duyệt, mẫu được hiển thị bên dưới

Cách lấy đầu ra sql ở định dạng html

Thay đổi quan trọng đối với báo cáo cho phép định dạng HTML là dòng

________số 8

 

The “set markup html on” command is what produces the HTML formatting. By specifying “spool on”, it includes the “” and “” opening and closing tags at the start and end of each file created. However, this “spool” option on the “markup” command does not specify whether or not to write to a file. Therefore, you still need to include a separate “spool filename” command. Also remember to give your filename an “.htm” or “.html” extension.

In order to get the additional HTML tags within the data to display correctly, the “entmap off” parameter is necessary. By default, the “entmap” parameter is set to on, causing certain characters, like “<” and “>”, to use their associated HTML entities (i.e. “<” and “>”). The “entmap” parameter can either be set globally as shown in the example above, or on an individual column basis. If the “entmap” parameter is set to on, the output will look like the following:

Cách lấy đầu ra sql ở định dạng html

Có các tùy chọn bổ sung có thể được sử dụng với lệnh “đánh dấu”, lệnh này sẽ cho phép bạn đặt nội dung của phần HEAD và các thuộc tính của phần CƠ THỂ và BẢNG của báo cáo HTML. Để biết danh sách đầy đủ các tùy chọn khác nhau, hãy xem tài liệu của Oracle

Blog này dùng để nhắc nhở rằng có các tùy chọn để tạo các báo cáo được định dạng đẹp mắt thông qua SQL*Plus. Đối với dự án tôi đang thực hiện, nó cho phép tôi tạo báo cáo, đánh dấu dữ liệu cụ thể trong báo cáo, phân phối tệp đầu ra qua email và cho phép người nhận mở báo cáo trong trình duyệt

  • công việc định kỳ, tham số entmap, báo cáo định dạng HTML, đánh dấu HTML, báo cáo HTML, Jeff Klemme, Linux, lệnh đánh dấu, Oracle, cơ sở dữ liệu Oracle XE, Truy vấn, tùy chọn bộ đệm, báo cáo SQL*Plus, SQLPlus

Cách lấy đầu ra sql ở định dạng html

Nhà Nhân Viên Gạch

Tất cả những bài viết

liên kết

Mục lục

bài viết liên quan

Cách lấy đầu ra sql ở định dạng html

tiên tri

Giới thiệu bảo trì nhật ký Oracle

Bảo trì nhật ký là nhiệm vụ dường như luôn bị bỏ qua sau khi bạn thiết lập cơ sở dữ liệu mới, di chuyển dữ liệu và thực hiện

Đọc thêm "

Ngày 29 tháng 9 năm 2022

Cách lấy đầu ra sql ở định dạng html

tiên tri

Cơ sở dữ liệu Oracle của tôi có được hỗ trợ không?

Một điều mà nhóm của chúng tôi thường xuyên nghe được từ khách hàng là một biến thể trong câu “Tôi phải nâng cấp để cơ sở dữ liệu của tôi được hỗ trợ. ” Tuyên bố này

Đọc thêm "

Ngày 27 tháng 9 năm 2022

Cách lấy đầu ra sql ở định dạng html

AWS

Oracle RAC sang Phiên bản đơn cho AWS Migration

Oracle Real Application Clusters (RAC) là công nghệ phân cụm cấp cơ sở dữ liệu của Oracle được cho là cung cấp tính sẵn sàng cao. Mục đích là làm cho cơ sở dữ liệu RAC luôn

Chúng ta có thể viết các truy vấn SQL trong HTML không?

Câu trả lời là có. Truy vấn CHỌN trả về kết quả dưới dạng tập hợp hàng. Bạn có thể tùy ý truy xuất các kết quả chính thức của truy vấn SQL dưới dạng XML bằng cách chỉ định mệnh đề FOR ​​XML trong truy vấn. Bằng cách sử dụng mệnh đề FOR ​​XML, chúng tôi cũng có thể trả về kết quả ở định dạng HTML nhưng cần điều chỉnh truy vấn một chút .

HTML hoạt động như thế nào với SQL?

Bạn có thể tạo HTML từ SQL vì SQL Server có hỗ trợ tích hợp để xuất XML và HTML được hiểu tốt nhất là một ngôn ngữ hơi kỳ quặc . Có rất nhiều trường hợp cạnh trong đó cấu trúc HTML là cách rõ ràng nhất để giao tiếp các bảng, danh sách và thư mục.

Có thể được sử dụng để hiển thị đầu ra trong PL SQL không?

DBMS_OUTPUT là gói tích hợp sẵn cho phép bạn hiển thị đầu ra, thông tin gỡ lỗi và gửi thông báo từ khối PL/SQL, chương trình con, gói và trình kích hoạt.