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

Tùy chọn định dạng SQLcl (Oracle)

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>

  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Hết thời gian chờ kết nối cho DriverManager getConnection

  2. Câu hỏi tham gia SQL

  3. Cách cài đặt Oracle Express Edition cho Thực hành SQL

  4. Bảng tạm thời cục bộ trong Oracle 10 (đối với phạm vi của Thủ tục được lưu trữ)

  5. Tại sao Oracle 9i xử lý một chuỗi rỗng là NULL?