sql >> Database teknologi >  >> RDS >> Oracle

SQLcl-formateringsindstillinger (Oracle)

Når du bruger SQLcl til at forespørge Oracle Database, kan du bruge SET SQLFORMAT kommando til at bestemme formatet for resultaterne.

Du kan også bruge indlejrede kommentarer til at angive formatet direkte fra din forespørgsel.

For eksempel kan du bruge følgende til at outputte resultaterne i CSV-format:

SET SQLFORMAT csv;
SELECT * FROM regions;

Eller du kan gøre det sådan her:

SELECT /*csv*/ * FROM regions;

Formateringsindstillinger

Følgende muligheder kan bruges til at angive outputformatet:

Mulighed Beskrivelse
default Sletter al formatering og indstiller den til SQL*PLUS stilformatering. Denne mulighed virker kun med SET SQLFORMAT kommando.
ansiconsole Avanceret formatering baseret på data og terminalstørrelse.
fixed Fast bredde.
csv Kommasepareret format med strenge omsluttet af dobbelte anførselstegn (" ).
loader Rør (| ) afgrænset format med strenge omgivet af dobbelte anførselstegn (" ).
delimited CSV-format med valgfri separator, venstre og højre kabinet.
text Udlæser resultaterne som tekst uden separatorer. Denne mulighed er ikke dokumenteret i HELP mulighed.
insert Genererer SQL INSERT udsagn fra resultaterne.
json JSON-format, der matcher ORDS Collection Format.
json-formatted JSON-format, der matcher ORDS Collection Format og smukt trykt. JSON præsenteres i et mere menneskeligt læsbart format.
xml XML-format.
html HTML-tabelformat. Genererer koden til et HTML-dokument med en tabel med stil og et JavaScript-søgeværktøj.

Eksempler

Nedenfor er eksempler for at demonstrere ovenstående muligheder.

default

Sletter al formatering og indstiller den til SQL*PLUS-formatering.

SET SQLFORMAT default;
SELECT * FROM regions;

Resultat:

SQL Format Cleared

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

ansiconsole

Avanceret formatering baseret på data og terminalstørrelse.

SET SQLFORMAT ansiconsole;
SELECT * FROM regions;

Resultat:

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

fixed

Fast bredde.

SET SQLFORMAT fixed;
SELECT * FROM regions;

Resultat:

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

csv

Kommasepareret format med strenge omsluttet af dobbelte anførselstegn (" ).

SET SQLFORMAT csv;
SELECT * FROM regions;

Resultat:

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

loader

Pipe (| ) afgrænset format med strenge omgivet af dobbelte anførselstegn (" ).

SET SQLFORMAT loader;
SELECT * FROM regions;

Resultat:

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

delimited

CSV-format med valgfri separator, venstre og højre kabinet. Dette giver dig mulighed for at vælge dine egne afgrænsninger.

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

Resultat:

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

text

Udlæser resultaterne som tekst uden separatorer. Denne mulighed er ikke dokumenteret i HELP mulighed.

SET SQLFORMAT text;
SELECT * FROM regions;

Resultat:

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

insert

Genererer SQL INSERT udsagn fra resultaterne.

SET SQLFORMAT insert;
SELECT * FROM regions;

Resultat:

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-format, der matcher ORDS Collection Format.

SET SQLFORMAT json;
SELECT * FROM regions;

Resultat:

{"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-format, der matcher ORDS Collection Format og smukt trykt. JSON præsenteres i et mere menneskeligt læsbart format.

SET SQLFORMAT json-formatted;
SELECT * FROM regions;

Resultat:

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

SET SQLFORMAT xml;
SELECT * FROM regions;

Resultat:

<?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-tabelformat. Genererer koden til et HTML-dokument med en tabel med stil og et JavaScript-søgeværktøj.

SET SQLFORMAT html;
SELECT * FROM regions;

Den resulterende HTML-kode er ret stor, da den opretter et HTML-dokument, tilføjer typografier, JavaScript osv.

Sådan ser den resulterende HTML ud, når den er gemt i en .html fil og gengivet i en browser:

  • regions.html

Og her er den faktiske HTML-kode, der blev genereret:

<!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. 3 måder at finde rækker, der indeholder små bogstaver i SQLite

  2. Virtuelle kolonner og funktionelle indekser

  3. Hvordan IFNULL() virker i MariaDB

  4. Uddrag måneden fra en dato i PostgreSQL