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>