Oracle
 sql >> Baza danych >  >> RDS >> Oracle

Opcje formatowania SQLcl (Oracle)

Używając SQLcl do tworzenia zapytań do bazy danych Oracle, możesz użyć SET SQLFORMAT polecenie, aby określić format wyników.

Możesz także użyć wbudowanych komentarzy, aby określić format bezpośrednio w zapytaniu.

Na przykład możesz użyć poniższego, aby wyprowadzić wyniki w formacie CSV:

SET SQLFORMAT csv;
SELECT * FROM regions;

Lub możesz to zrobić w ten sposób:

SELECT /*csv*/ * FROM regions;

Opcje formatowania

Do określenia formatu wyjściowego można użyć następujących opcji:

Opcja Opis
default Czyści całe formatowanie i ustawia je na formatowanie w stylu SQL*PLUS. Ta opcja działa tylko z SET SQLFORMAT polecenie.
ansiconsole Zaawansowane formatowanie oparte na danych i rozmiarze terminala.
fixed Stała szerokość.
csv Format oddzielony przecinkami z ciągami ujętymi w podwójne cudzysłowy (" ).
loader Rura (| ) format rozdzielany z ciągami ujętymi w podwójne cudzysłowy (" ).
delimited Format CSV z opcjonalnym separatorem, lewą i prawą obudową.
text Wyprowadza wyniki jako tekst, bez separatorów. Ta opcja nie jest udokumentowana w HELP opcja.
insert Generuje SQL INSERT oświadczenia z wyników.
json Format JSON zgodny z formatem kolekcji ORDS.
json-formatted Format JSON zgodny z formatem kolekcji ORDS i ładnie wydrukowany. JSON jest prezentowany w formacie bardziej czytelnym dla człowieka.
xml Format XML.
html format tabelaryczny HTML. Generuje kod dla dokumentu HTML z tabelą ze stylami i narzędziem wyszukiwania JavaScript.

Przykłady

Poniżej znajdują się przykłady demonstrujące powyższe opcje.

default

Czyści całe formatowanie i ustawia je na formatowanie w stylu SQL*PLUS.

SET SQLFORMAT default;
SELECT * FROM regions;

Wynik:

SQL Format Cleared

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

ansiconsole

Zaawansowane formatowanie oparte na danych i rozmiarze terminala.

SET SQLFORMAT ansiconsole;
SELECT * FROM regions;

Wynik:

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

fixed

Stała szerokość.

SET SQLFORMAT fixed;
SELECT * FROM regions;

Wynik:

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

csv

Format oddzielony przecinkami z ciągami ujętymi w podwójne cudzysłowy (" ).

SET SQLFORMAT csv;
SELECT * FROM regions;

Wynik:

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

loader

Potok (| ) format rozdzielany z ciągami ujętymi w podwójne cudzysłowy (" ).

SET SQLFORMAT loader;
SELECT * FROM regions;

Wynik:

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

delimited

Format CSV z opcjonalnym separatorem, lewą i prawą obudową. Dzięki temu możesz wybrać własne ograniczniki.

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

Wynik:

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

text

Wyprowadza wyniki jako tekst, bez separatorów. Ta opcja nie jest udokumentowana w HELP opcja.

SET SQLFORMAT text;
SELECT * FROM regions;

Wynik:

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

insert

Generuje SQL INSERT oświadczenia z wyników.

SET SQLFORMAT insert;
SELECT * FROM regions;

Wynik:

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

Format JSON zgodny z formatem kolekcji ORDS.

SET SQLFORMAT json;
SELECT * FROM regions;

Wynik:

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

Format JSON pasujący do formatu kolekcji ORDS i ładnie wydrukowany. JSON jest prezentowany w formacie bardziej czytelnym dla człowieka.

SET SQLFORMAT json-formatted;
SELECT * FROM regions;

Wynik:

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

format XML.

SET SQLFORMAT xml;
SELECT * FROM regions;

Wynik:

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

Format tabelaryczny HTML. Generuje kod dla dokumentu HTML z tabelą ze stylami i wyszukiwarką JavaScript.

SET SQLFORMAT html;
SELECT * FROM regions;

Wynikowy kod HTML jest dość duży, ponieważ tworzy dokument HTML, dodaje style, JavaScript itp.

Oto, jak wygląda wynikowy kod HTML po zapisaniu w pliku .html plik i renderowany w przeglądarce:

  • regions.html

A oto rzeczywisty wygenerowany kod 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. Oracle 11g — Jak zoptymalizować powolny wybór wstawiania równoległego?

  2. SSIS - wartość nie może zostać przekonwertowana z powodu potencjalnej utraty danych

  3. if (wybierz count(kolumnę) z tabeli)> 0 then

  4. Jak utworzyć tabelę tymczasową w bazie danych Oracle?

  5. Oświadczenie ORACLE IIF