Wenn Sie SQLcl mit Oracle Database verwenden, können Sie den SPOOL verwenden Befehl, um Ihre Abfrageergebnisse in eine Datei mit einem .html zu exportieren Erweiterung, und Sie können SQLFORMAT festlegen nach html um die eigentlichen Abfrageergebnisse im HTML-Format auszugeben.
Beispiel
Hier ist ein Beispiel zur Veranschaulichung:
SET SQLFORMAT html;
SPOOL '/Users/barney/data/regions.html';
SELECT * FROM regions;
SPOOL off;
SET SQLFORMAT ansiconsole; Hier ist, was es getan hat, Zeile für Zeile:
- Die erste Zeile setzt
SQLFORMATnachhtml. Dadurch wird sichergestellt, dass unsere resultierende.htmlDatei enthält tatsächlich HTML-Code. - Die zweite Zeile verwendet den
SPOOLBefehl, um anzugeben, wohin die Ausgabedatei geschrieben werden soll. Achten Sie darauf,/Users/barney/data/regions.htmlzu ändern an einen Speicherort auf Ihrem System und einen entsprechenden Dateinamen. - In der dritten Zeile habe ich die SQL-Abfrage ausgeführt – die Ergebnisse, für die ich exportiere. In diesem Fall habe ich die gesamten
regionsexportiert Tabelle. - Als nächstes drehte ich
SPOOLaus. - Zuletzt setze ich
SQLFORMATzurück zu meiner ursprünglichen Einstellung, dieansiconsolewar . Dies ist optional – Sie können es beijsonbelassen wenn Sie es vorziehen, oder ändern Sie es in etwas anderes.
So sieht die resultierende Datei aus:
regions.html
Und hier ist der Quellcode hinter dieser Datei:
<!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>
4 rows selected. Es generiert also das gesamte HTML-Dokument – nicht nur die Tabelle.
Sie werden feststellen, dass CSS für Styling-Zwecke hinzugefügt wurde und JavaScript hinzugefügt wurde, um eine Suchfunktion zu erstellen.
Feedback entfernen
Sie können das X rows selected mit SET FEEDBACK off :
SET SQLFORMAT html;
SET FEEDBACK off;
SPOOL '/Users/barney/data/regions_feedback_off.html';
SELECT * FROM regions;
SPOOL off;
SET FEEDBACK on;
SET SQLFORMAT ansiconsole;
In diesem Fall habe ich mich an FEEDBACK gewandt nach dem Exportieren der Datei wieder einschalten.