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
SQLFORMAT
nachhtml
. Dadurch wird sichergestellt, dass unsere resultierende.html
Datei enthält tatsächlich HTML-Code. - Die zweite Zeile verwendet den
SPOOL
Befehl, um anzugeben, wohin die Ausgabedatei geschrieben werden soll. Achten Sie darauf,/Users/barney/data/regions.html
zu ä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
regions
exportiert Tabelle. - Als nächstes drehte ich
SPOOL
aus. - Zuletzt setze ich
SQLFORMAT
zurück zu meiner ursprünglichen Einstellung, dieansiconsole
war . Dies ist optional – Sie können es beijson
belassen 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.