När du använder SQLcl för att fråga Oracle Database kan du använda SET SQLFORMAT
kommando för att bestämma formatet för resultaten.
Du kan också använda infogade kommentarer för att ange formatet direkt i din fråga.
Du kan till exempel använda följande för att mata ut resultaten i CSV-format:
SET SQLFORMAT csv;
SELECT * FROM regions;
Eller så kan du göra så här:
SELECT /*csv*/ * FROM regions;
Formateringsalternativ
Följande alternativ kan användas för att ange utdataformat:
Alternativ | Beskrivning |
---|---|
default | Rensar all formatering och ställer in den på SQL*PLUS-formatering. Det här alternativet fungerar bara med SET SQLFORMAT kommando. |
ansiconsole | Avancerad formatering baserat på data och terminalstorlek. |
fixed | Fast bredd. |
csv | Kommaseparerat format med strängar omslutna av dubbla citattecken (" ). |
loader | Rör (| ) avgränsat format med strängar omslutna av dubbla citattecken (" ). |
delimited | CSV-format med valfri separator, vänster och höger hölje. |
text | Matar ut resultaten som text, utan separatorer. Det här alternativet finns inte dokumenterat i HELP alternativ. |
insert | Genererar SQL INSERT uttalanden från resultaten. |
json | JSON-format som matchar ORDS Collection Format. |
json-formatted | JSON-format som matchar ORDS Collection Format och snyggt tryckt. JSON presenteras i ett mer mänskligt läsbart format. |
xml | XML-format. |
html | HTML-tabellformat. Genererar koden för ett HTML-dokument med en tabell med stil och ett JavaScript-sökverktyg. |
Exempel
Nedan finns exempel för att visa alternativen ovan.
default
Rensar all formatering och ställer in den på 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
Avancerad formatering baserad på data och terminalstorlek.
SET SQLFORMAT ansiconsole;
SELECT * FROM regions;
Resultat:
REGION_ID REGION_NAME ____________ _________________________ 1 Europe 2 Americas 3 Asia 4 Middle East and Africa
fixed
Fast bredd.
SET SQLFORMAT fixed;
SELECT * FROM regions;
Resultat:
"REGION_ID" "REGION_NAME" "1" "Europe" "2" "Americas" "3" "Asia" "4" "Middle East and Africa"
csv
Kommaseparerat format med strängar omslutna av dubbla citattecken ("
).
SET SQLFORMAT csv;
SELECT * FROM regions;
Resultat:
"REGION_ID","REGION_NAME" 1,"Europe" 2,"Americas" 3,"Asia" 4,"Middle East and Africa"
loader
Pipe (|
) avgränsat format med strängar omslutna av dubbla citattecken ("
).
SET SQLFORMAT loader;
SELECT * FROM regions;
Resultat:
1|"Europe"| 2|"Americas"| 3|"Asia"| 4|"Middle East and Africa"|
delimited
CSV-format med valfri separator, vänster och höger hölje. Detta gör att du kan välja dina egna avgränsare.
SET SQLFORMAT delimited , < >;
SELECT * FROM regions;
Resultat:
<REGION_ID>,<REGION_NAME> 1,<Europe> 2,<Americas> 3,<Asia> 4,<Middle East and Africa>
text
Matar ut resultaten som text, utan separatorer. Det här alternativet finns inte dokumenterat i HELP
alternativ.
SET SQLFORMAT text;
SELECT * FROM regions;
Resultat:
"REGION_ID"null"REGION_NAME" 1null"Europe" 2null"Americas" 3null"Asia" 4null"Middle East and Africa"
insert
Genererar SQL INSERT
uttalanden från resultaten.
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 som matchar 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 som matchar ORDS Collection Format och snyggt tryckt. JSON presenteras i ett mer mänskligt 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-tabellformat. Genererar koden för ett HTML-dokument med en tabell med stil och ett JavaScript-sökverktyg.
SET SQLFORMAT html;
SELECT * FROM regions;
Den resulterande HTML-koden är ganska stor, eftersom den skapar ett HTML-dokument, lägger till stilar, JavaScript, etc.
Så här ser den resulterande HTML-koden ut när den sparas i en .html
fil och renderad i en webbläsare:
regions.html
Och här är den faktiska HTML-koden som genererades:
<!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>