Oracle
 sql >> Teknologi Basis Data >  >> RDS >> Oracle

Ekspor Hasil Permintaan Oracle ke File HTML saat menggunakan SQLcl

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 ke html . 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, yaitu ansiconsole . Ini opsional – Anda dapat membiarkannya di json 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.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Cara memodifikasi tipe data di Oracle dengan baris yang ada di tabel

  2. Cara mengganti nama kunci utama di Oracle sehingga dapat digunakan kembali

  3. Cara membuat tautan DB antara dua instance Oracle

  4. Cara Menghapus Nol Awal Dari Tanggal di Oracle

  5. Mengaktifkan Virtualisasi di BIOS di Laptop atau Desktop untuk Virtualbox VM