sql >> Databáze >  >> RDS >> Oracle

Exportujte výsledky dotazů Oracle do souboru HTML při použití SQLcl

Při použití SQLcl s databází Oracle můžete použít SPOOL k exportu výsledků dotazu do souboru s .html a můžete nastavit SQLFORMAT do html za účelem výstupu skutečných výsledků dotazu ve formátu HTML.

Příklad

Zde je příklad k demonstraci:

SET SQLFORMAT html;
SPOOL '/Users/barney/data/regions.html';
SELECT * FROM regions;
SPOOL off;
SET SQLFORMAT ansiconsole;

Tady je to, co to udělalo, řádek po řádku:

  • První řádek nastavuje SQLFORMAT do html . Tím je zajištěno, že naše výsledná .html soubor ve skutečnosti obsahuje kód HTML.
  • Druhý řádek používá SPOOL příkaz k určení, kam bude výstupní soubor zapsán. Nezapomeňte změnit /Users/barney/data/regions.html do umístění ve vašem systému a odpovídající název souboru.
  • Na třetím řádku jsem spustil SQL dotaz – výsledky, pro které exportuji. V tomto případě jsem exportoval celé regions stůl.
  • Dále jsem zapnul SPOOL vypnuto.
  • Nakonec jsem nastavil SQLFORMAT zpět k mému původnímu nastavení, což bylo ansiconsole . Toto je volitelné – můžete to nechat na json pokud chcete, nebo to změňte na něco jiného.

Takto vypadá výsledný soubor:

  • regions.html

A zde je zdrojový kód tohoto souboru:

<!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.

Vygeneruje tedy celý dokument HTML – nejen tabulku.

Všimnete si, že některé CSS byly přidány pro účely stylingu a JavaScript byl přidán pro vytvoření vyhledávací funkce.

Odebrat zpětnou vazbu

Můžete odstranit X rows selected s 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;

V tomto případě jsem otočil FEEDBACK zpět po exportu souboru.


  1. hromadné vložení z Javy do Oracle

  2. Jak najít historii waitevent relace Oracle

  3. Klauzule Oracle DateTime in Where?

  4. Zkontrolujte zdroj ovládání všech ovládacích prvků ve vašem projektu MS Access