Khi sử dụng SQLcl để truy vấn Cơ sở dữ liệu Oracle, bạn có thể sử dụng SET SQLFORMAT
lệnh để xác định định dạng của kết quả.
Bạn cũng có thể sử dụng nhận xét nội dòng để chỉ định định dạng từ trực tiếp trong truy vấn của mình.
Ví dụ:bạn có thể sử dụng phần sau để xuất kết quả ở định dạng CSV:
SET SQLFORMAT csv;
SELECT * FROM regions;
Hoặc bạn có thể làm như thế này:
SELECT /*csv*/ * FROM regions;
Tùy chọn định dạng
Các tùy chọn sau có thể được sử dụng để chỉ định định dạng đầu ra:
Tùy chọn | Mô tả |
---|---|
default | Xóa tất cả định dạng và đặt nó thành định dạng kiểu SQL * PLUS. Tùy chọn này chỉ hoạt động với SET SQLFORMAT lệnh. |
ansiconsole | Định dạng nâng cao dựa trên dữ liệu và kích thước đầu cuối. |
fixed | Chiều rộng cố định. |
csv | Định dạng được phân tách bằng dấu phẩy với các chuỗi được đặt trong dấu ngoặc kép (" ). |
loader | Ống (| ) định dạng được phân tách với các chuỗi được đặt trong dấu ngoặc kép (" ). |
delimited | Định dạng CSV với dấu phân cách tùy chọn, bao quanh trái và phải. |
text | Xuất kết quả dưới dạng văn bản, không có dấu phân cách. Tùy chọn này không được ghi lại trong HELP tùy chọn. |
insert | Tạo SQL INSERT báo cáo từ kết quả. |
json | Định dạng JSON khớp với Định dạng Bộ sưu tập ORDS. |
json-formatted | Định dạng JSON phù hợp với Định dạng Bộ sưu tập ORDS và được in đẹp. JSON được trình bày ở định dạng con người dễ đọc hơn. |
xml | Định dạng XML. |
html | Định dạng bảng HTML. Tạo mã cho tài liệu HTML với bảng có kiểu và công cụ tìm kiếm JavaScript. |
Ví dụ
Dưới đây là các ví dụ để chứng minh các tùy chọn trên.
default
Xóa tất cả định dạng và đặt nó thành định dạng kiểu SQL * PLUS.
SET SQLFORMAT default;
SELECT * FROM regions;
Kết quả:
SQL Format Cleared REGION_ID REGION_NAME ---------- ------------------------- 1 Europe 2 Americas 3 Asia 4 Middle East and Africa
ansiconsole
Định dạng nâng cao dựa trên dữ liệu và kích thước đầu cuối.
SET SQLFORMAT ansiconsole;
SELECT * FROM regions;
Kết quả:
REGION_ID REGION_NAME ____________ _________________________ 1 Europe 2 Americas 3 Asia 4 Middle East and Africa
fixed
Chiều rộng cố định.
SET SQLFORMAT fixed;
SELECT * FROM regions;
Kết quả:
"REGION_ID" "REGION_NAME" "1" "Europe" "2" "Americas" "3" "Asia" "4" "Middle East and Africa"
csv
Định dạng được phân tách bằng dấu phẩy với các chuỗi được đặt trong dấu ngoặc kép ("
).
SET SQLFORMAT csv;
SELECT * FROM regions;
Kết quả:
"REGION_ID","REGION_NAME" 1,"Europe" 2,"Americas" 3,"Asia" 4,"Middle East and Africa"
loader
Ống (|
) định dạng được phân tách với các chuỗi được đặt trong dấu ngoặc kép ("
).
SET SQLFORMAT loader;
SELECT * FROM regions;
Kết quả:
1|"Europe"| 2|"Americas"| 3|"Asia"| 4|"Middle East and Africa"|
delimited
Định dạng CSV với dấu phân tách, bao trái và phải tùy chọn. Điều này cho phép bạn chọn các dấu phân cách của riêng mình.
SET SQLFORMAT delimited , < >;
SELECT * FROM regions;
Kết quả:
<REGION_ID>,<REGION_NAME> 1,<Europe> 2,<Americas> 3,<Asia> 4,<Middle East and Africa>
text
Đưa ra kết quả dưới dạng văn bản, không có dấu phân tách. Tùy chọn này không được ghi lại trong HELP
tùy chọn.
SET SQLFORMAT text;
SELECT * FROM regions;
Kết quả:
"REGION_ID"null"REGION_NAME" 1null"Europe" 2null"Americas" 3null"Asia" 4null"Middle East and Africa"
insert
Tạo SQL INSERT
báo cáo từ kết quả.
SET SQLFORMAT insert;
SELECT * FROM regions;
Kết quả:
REM INSERTING into REGIONS SET DEFINE OFF; Insert into REGIONS (REGION_ID,REGION_NAME) values (1,'Europe'); Insert into REGIONS (REGION_ID,REGION_NAME) values (2,'Americas'); Insert into REGIONS (REGION_ID,REGION_NAME) values (3,'Asia'); Insert into REGIONS (REGION_ID,REGION_NAME) values (4,'Middle East and Africa');
json
Định dạng JSON khớp với Định dạng Bộ sưu tập ORDS.
SET SQLFORMAT json;
SELECT * FROM regions;
Kết quả:
{"results":[{"columns":[{"name":"REGION_ID","type":"NUMBER"},{"name":"REGION_NAME","type":"VARCHAR2"}],"items": [ {"region_id":1,"region_name":"Europe"} ,{"region_id":2,"region_name":"Americas"} ,{"region_id":3,"region_name":"Asia"} ,{"region_id":4,"region_name":"Middle East and Africa"} ]}]}
json-formatted
Định dạng JSON phù hợp với Định dạng Bộ sưu tập ORDS và được in đẹp. JSON được trình bày ở định dạng con người dễ đọc hơn.
SET SQLFORMAT json-formatted;
SELECT * FROM regions;
Kết quả:
{"results":[{"columns":[{"name":"REGION_ID","type":"NUMBER"},{"name":"REGION_NAME","type":"VARCHAR2"}],"items": [ {"region_id":1,"region_name":"Europe"} ,{"region_id":2,"region_name":"Americas"} ,{"region_id":3,"region_name":"Asia"} ,{"region_id":4,"region_name":"Middle East and Africa"} ]}]}
xml
Định dạng XML.
SET SQLFORMAT xml;
SELECT * FROM regions;
Kết quả:
<?xml version='1.0' encoding='UTF-8' ?> <RESULTS> <ROW> <COLUMN NAME="REGION_ID"><![CDATA[1]]></COLUMN> <COLUMN NAME="REGION_NAME"><![CDATA[Europe]]></COLUMN> </ROW> <ROW> <COLUMN NAME="REGION_ID"><![CDATA[2]]></COLUMN> <COLUMN NAME="REGION_NAME"><![CDATA[Americas]]></COLUMN> </ROW> <ROW> <COLUMN NAME="REGION_ID"><![CDATA[3]]></COLUMN> <COLUMN NAME="REGION_NAME"><![CDATA[Asia]]></COLUMN> </ROW> <ROW> <COLUMN NAME="REGION_ID"><![CDATA[4]]></COLUMN> <COLUMN NAME="REGION_NAME"><![CDATA[Middle East and Africa]]></COLUMN> </ROW> </RESULTS>
html
Định dạng bảng HTML. Tạo mã cho tài liệu HTML với bảng có kiểu và công cụ tìm kiếm JavaScript.
SET SQLFORMAT html;
SELECT * FROM regions;
Mã HTML tạo ra khá lớn, vì nó tạo ra một tài liệu HTML, thêm các kiểu, JavaScript, v.v.
Đây là HTML kết quả trông như thế nào khi được lưu vào .html
tệp và được hiển thị trong trình duyệt:
-
regions.html
Và đây là mã HTML thực tế đã được tạo:
<!DOCTYPE html> <html> <head> <meta charset='UTF-8'> <title>Result Data</title> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <style> * { margin: 0; padding: 0; } body { font: 14px/1.4 Palatino, Serif; } /* Generic Styling, for Desktops/Laptops */ table { width: 100%; border-collapse: collapse; } /* Zebra striping */ tr:nth-of-type(odd) { background: #eee; } th { background: #333; color: white; font-weight: bold; } td, th { padding: 6px; border: 1px solid #9B9B9B; text-align: left; } @media only screen and (max-width: 760px), (min-device-width: 768px) and (max-device-width: 1024px) { table, thead, tbody, th, td, tr { display: block; } thead tr { position: absolute;top: -9999px;left: -9999px;} tr { border: 1px solid #9B9B9B; } td { border: none;border-bottom: 1px solid #9B9B9B; position: relative;padding-left: 50%; } td:before { position: absolute;top: 6px;left: 6px;width: 45%; padding-right: 10px; white-space: nowrap;} /* Label the data */ td:nth-of-type(1):before { content: "REGION_ID"; } td:nth-of-type(2):before { content: "REGION_NAME"; } } /* Smartphones (portrait and landscape) ----------- */ @media only screen and (min-device-width : 320px) and (max-device-width : 480px) { body { padding: 0; margin: 0; width: 320px; } } /* iPads (portrait and landscape) ----------- */ @media only screen and (min-device-width: 768px) and (max-device-width: 1024px) { body { width: 495px; } } </style> <!--<![endif]--> <script type="text/javascript"> function search(){ var s = document.getElementById('search').value; rows = document.getElementById('data').getElementsByTagName('TR'); for(var i=0;i<rows.length;i++){ if ( rows[i].textContent.indexOf(s)>0 || s.length==0 ) { rows[i].style.display =''; } else { rows[i].style.display ='none'; } } } var timer; function delayedSearch() { clearTimeout(timer); console.log('delay-ing') timer = setTimeout(function () { console.log('delay-running') search(); }, 500); }</script> </head> <body> <div><input type="text" size="30" maxlength="1000" value="" id="search" onkeyup="delayedSearch();" /><input type="button" value="Go" onclick="lsearch();"/> </div> <table><thead><tr> <th>REGION_ID</th> <th>REGION_NAME</th> </tr></thead> <tbody id="data"> <tr> <td align="right">1</td> <td>Europe</td> </tr> <tr> <td align="right">2</td> <td>Americas</td> </tr> <tr> <td align="right">3</td> <td>Asia</td> </tr> <tr> <td align="right">4</td> <td>Middle East and Africa</td> </tr> </tbody></table><!-- SQL: SELECT * FROM regions--></body></html>