Oracle
 sql >> база данни >  >> RDS >> Oracle

Опции за форматиране на SQLcl (Oracle)

Когато използвате SQLcl за заявка към Oracle Database, можете да използвате SET SQLFORMAT команда за определяне на формата на резултатите.

Можете също да използвате вградени коментари, за да посочите формата директно във вашата заявка.

Например, можете да използвате следното, за да изведете резултатите във формат CSV:

SET SQLFORMAT csv;
SELECT * FROM regions;

Или можете да го направите по следния начин:

SELECT /*csv*/ * FROM regions;

Опции за форматиране

Следните опции могат да се използват за определяне на изходния формат:

Опция Описание
default Изчиства цялото форматиране и го задава на форматиране в стил SQL*PLUS. Тази опция работи само с SET SQLFORMAT команда.
ansiconsole Разширено форматиране въз основа на данни и размер на терминала.
fixed Фиксирана ширина.
csv Разделен със запетая формат с низове, затворени в двойни кавички (" ).
loader Тръба (| ) разделен формат с низове, затворени в двойни кавички (" ).
delimited CSV формат с допълнителен разделител, ляв и десен корпус.
text Извежда резултатите като текст, без разделители. Тази опция не е документирана в HELP опция.
insert Генерира SQL INSERT извлечения от резултатите.
json JSON формат съответстващ на ORDS Collection Format.
json-formatted JSON формат, съответстващ на ORDS Collection Format и доста отпечатан. JSON е представен в по-четим от човека формат.
xml XML формат.
html HTML табличен формат. Генерира кода за HTML документ с таблица със стил и инструмент за търсене на JavaScript.

Примери

По-долу са дадени примери за демонстриране на горните опции.

default

Изчиства цялото форматиране и го задава на форматиране в стил SQL*PLUS.

SET SQLFORMAT default;
SELECT * FROM regions;

Резултат:

SQL Format Cleared

 REGION_ID REGION_NAME              
---------- -------------------------
         1 Europe                   
         2 Americas                 
         3 Asia                     
         4 Middle East and Africa   

ansiconsole

Разширено форматиране въз основа на данните и размера на терминала.

SET SQLFORMAT ansiconsole;
SELECT * FROM regions;

Резултат:

   REGION_ID               REGION_NAME 
____________ _________________________ 
           1 Europe                    
           2 Americas                  
           3 Asia                      
           4 Middle East and Africa    

fixed

Фиксирана ширина.

SET SQLFORMAT fixed;
SELECT * FROM regions;

Резултат:

"REGION_ID"                   "REGION_NAME"                 
"1"                           "Europe"                      
"2"                           "Americas"                    
"3"                           "Asia"                        
"4"                           "Middle East and Africa"

csv

Формат, разделен със запетая, с низове, затворени в двойни кавички (" ).

SET SQLFORMAT csv;
SELECT * FROM regions;

Резултат:

"REGION_ID","REGION_NAME"
1,"Europe"
2,"Americas"
3,"Asia"
4,"Middle East and Africa"

loader

Тръба (| ) разделен формат с низове, затворени в двойни кавички (" ).

SET SQLFORMAT loader;
SELECT * FROM regions;

Резултат:

 1|"Europe"|
 2|"Americas"|
 3|"Asia"|
 4|"Middle East and Africa"|

delimited

CSV формат с допълнителен разделител, ляв и десен корпус. Това ви позволява да избирате свои собствени разделители.

SET SQLFORMAT delimited , < >;
SELECT * FROM regions;

Резултат:

<REGION_ID>,<REGION_NAME>
1,<Europe>
2,<Americas>
3,<Asia>
4,<Middle East and Africa>

text

Извежда резултатите като текст, без разделители. Тази опция не е документирана в HELP опция.

SET SQLFORMAT text;
SELECT * FROM regions;

Резултат:

"REGION_ID"null"REGION_NAME"
1null"Europe"
2null"Americas"
3null"Asia"
4null"Middle East and Africa"

insert

Генерира SQL INSERT изявления от резултатите.

SET SQLFORMAT insert;
SELECT * FROM regions;

Резултат:

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

JSON формат, съответстващ на ORDS Collection Format.

SET SQLFORMAT json;
SELECT * FROM regions;

Резултат:

{"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

JSON формат, съответстващ на ORDS Collection Format и доста отпечатан. JSON е представен в по-четим от човека формат.

SET SQLFORMAT json-formatted;
SELECT * FROM regions;

Резултат:

{
  "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

XML формат.

SET SQLFORMAT xml;
SELECT * FROM regions;

Резултат:

<?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

HTML табличен формат. Генерира кода за HTML документ с таблица със стил и инструмент за търсене на JavaScript.

SET SQLFORMAT html;
SELECT * FROM regions;

Полученият HTML код е доста голям, тъй като създава HTML документ, добавя стилове, JavaScript и т.н.

Ето как изглежда полученият HTML, когато е записан в .html файл и изобразен в браузър:

  • regions.html

А ето и действителният HTML код, който беше генериран:

<!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. как да замените буквата с ударение в колона varchar2 в oracle

  2. Генериране на дати между две дати

  3. Свързване на Oracle с Amazon Aurora

  4. подаване на масив към процедурата на Oracle

  5. Каква е причината/полезността е да се използва ключова дума ENABLE в изразите на базата данни на Oracle