sql >> Databáze >  >> RDS >> Oracle

Možnosti formátování SQLcl (Oracle)

Při použití SQLcl k dotazování databáze Oracle můžete použít SET SQLFORMAT příkaz k určení formátu výsledků.

Můžete také použít vložené komentáře k určení formátu přímo v dotazu.

Pro výstup výsledků ve formátu CSV můžete použít například následující:

SET SQLFORMAT csv;
SELECT * FROM regions;

Nebo to můžete udělat takto:

SELECT /*csv*/ * FROM regions;

Možnosti formátování

K určení výstupního formátu lze použít následující možnosti:

Možnost Popis
default Vymaže veškeré formátování a nastaví jej na formátování ve stylu SQL*PLUS. Tato možnost funguje pouze s SET SQLFORMAT příkaz.
ansiconsole Pokročilé formátování na základě dat a velikosti terminálu.
fixed Pevná šířka.
csv Čárkami oddělený formát s řetězci uzavřenými v uvozovkách (" ).
loader Potrubí (| ) formát s oddělovači s řetězci uzavřenými v uvozovkách (" ).
delimited Formát CSV s volitelným oddělovačem, levým a pravým uzávěrem.
text Výsledky vytisknou jako text bez oddělovačů. Tato možnost není zdokumentována v HELP možnost.
insert Generuje SQL INSERT výpisy z výsledků.
json Formát JSON odpovídá formátu kolekce ORDS.
json-formatted Formát JSON odpovídající formátu ORDS Collection a pěkně vytištěný. JSON je prezentován v lidsky čitelnějším formátu.
xml Formát XML.
html tabulkový formát HTML. Vygeneruje kód pro dokument HTML s tabulkou se styly a vyhledávacím nástrojem JavaScript.

Příklady

Níže jsou uvedeny příklady demonstrující výše uvedené možnosti.

default

Vymaže veškeré formátování a nastaví jej na formátování ve stylu SQL*PLUS.

SET SQLFORMAT default;
SELECT * FROM regions;

Výsledek:

SQL Format Cleared

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

ansiconsole

Pokročilé formátování na základě dat a velikosti terminálu.

SET SQLFORMAT ansiconsole;
SELECT * FROM regions;

Výsledek:

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

fixed

Pevná šířka.

SET SQLFORMAT fixed;
SELECT * FROM regions;

Výsledek:

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

csv

Čárkami oddělený formát s řetězci uzavřenými v uvozovkách (" ).

SET SQLFORMAT csv;
SELECT * FROM regions;

Výsledek:

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

loader

Pipe (| ) formát s oddělovači s řetězci uzavřenými v uvozovkách (" ).

SET SQLFORMAT loader;
SELECT * FROM regions;

Výsledek:

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

delimited

Formát CSV s volitelným oddělovačem, levým a pravým uzávěrem. To vám umožní vybrat si vlastní oddělovače.

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

Výsledek:

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

text

Výsledky vytisknou jako text bez oddělovačů. Tato možnost není zdokumentována v HELP možnost.

SET SQLFORMAT text;
SELECT * FROM regions;

Výsledek:

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

insert

Generuje SQL INSERT výpisy z výsledků.

SET SQLFORMAT insert;
SELECT * FROM regions;

Výsledek:

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

Formát JSON odpovídá formátu kolekce ORDS.

SET SQLFORMAT json;
SELECT * FROM regions;

Výsledek:

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

Formát JSON odpovídající formátu ORDS Collection a pěkně vytištěný. JSON je prezentován v lidsky čitelnějším formátu.

SET SQLFORMAT json-formatted;
SELECT * FROM regions;

Výsledek:

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

formát XML.

SET SQLFORMAT xml;
SELECT * FROM regions;

Výsledek:

<?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 tabulkový formát. Vygeneruje kód pro dokument HTML s tabulkou se styly a vyhledávacím nástrojem JavaScript.

SET SQLFORMAT html;
SELECT * FROM regions;

Výsledný HTML kód je poměrně velký, protože vytváří HTML dokument, přidává styly, JavaScript atd.

Takto vypadá výsledný kód HTML po uložení do souboru .html soubor a vykreslený v prohlížeči:

  • regions.html

A zde je skutečný kód HTML, který byl vygenerován:

<!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. chyba běhu:java.lang.ClassNotFoundException:com.mysql.jdbc.Driver

  2. Změňte jazyk pro aktuální relaci na serveru SQL Server

  3. SQL Server – chybí NATURAL JOIN / x JOIN y USING (pole)

  4. PHP mysql vložit formát data