Saat menggunakan SQLcl dengan Oracle Database, Anda dapat menggunakan SPOOL
perintah untuk mengekspor hasil kueri Anda ke file dengan .html
ekstensi, dan Anda dapat mengatur SQLFORMAT
ke html
untuk menampilkan hasil kueri aktual dalam format HTML.
Contoh
Berikut ini contoh untuk didemonstrasikan:
SET SQLFORMAT html;
SPOOL '/Users/barney/data/regions.html';
SELECT * FROM regions;
SPOOL off;
SET SQLFORMAT ansiconsole;
Inilah yang dilakukannya, baris demi baris:
- Baris pertama menetapkan
SQLFORMAT
kehtml
. Ini memastikan bahwa.html
yang kami hasilkan file sebenarnya berisi kode HTML. - Baris kedua menggunakan
SPOOL
perintah untuk menentukan di mana file output akan ditulis. Pastikan untuk mengubah/Users/barney/data/regions.html
ke lokasi di sistem Anda, dan nama file yang sesuai. - Pada baris ketiga, saya menjalankan kueri SQL – hasil yang saya ekspor. Dalam hal ini, saya mengekspor seluruh
regions
meja. - Selanjutnya, saya mengubah
SPOOL
mati. - Terakhir, saya mengatur
SQLFORMAT
kembali ke pengaturan awal saya, yaituansiconsole
. Ini opsional – Anda dapat membiarkannya dijson
jika Anda mau, atau ubah ke yang lain.
Berikut tampilan file yang dihasilkan:
regions.html
Dan inilah kode sumber di balik file itu:
<!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.
Jadi ini menghasilkan seluruh dokumen HTML – bukan hanya tabel.
Anda akan melihat bahwa beberapa CSS telah ditambahkan untuk tujuan penataan gaya, dan JavaScript telah ditambahkan untuk membuat fungsi pencarian.
Hapus Masukan
Anda dapat menghapus X rows selected
dengan 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;
Dalam hal ini saya mengubah FEEDBACK
hidupkan kembali setelah mengekspor file.