Oracle
 sql >> Baza danych >  >> RDS >> Oracle

Eksportuj wyniki zapytania Oracle do pliku HTML podczas korzystania z SQLcl

Używając SQLcl z bazą danych Oracle, możesz użyć SPOOL polecenie, aby wyeksportować wyniki zapytania do pliku z .html rozszerzenie i możesz ustawić SQLFORMAT do html w celu wyświetlenia rzeczywistych wyników zapytania w formacie HTML.

Przykład

Oto przykład do zademonstrowania:

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

Oto, co zrobił, linia po linii:

  • Pierwszy wiersz ustawia SQLFORMAT do html . Gwarantuje to, że nasz wynikowy plik .html plik faktycznie zawiera kod HTML.
  • Druga linia używa SPOOL polecenie, aby określić, gdzie zostanie zapisany plik wyjściowy. Pamiętaj, aby zmienić /Users/barney/data/regions.html do lokalizacji w systemie i odpowiedniej nazwy pliku.
  • W trzecim wierszu uruchomiłem zapytanie SQL – wyniki, dla których eksportuję. W tym przypadku wyeksportowałem całe regions stół.
  • Następnie zmieniłem SPOOL wyłączony.
  • Na koniec ustawiłem SQLFORMAT z powrotem do mojego pierwotnego ustawienia, którym było ansiconsole . Jest to opcjonalne – możesz zostawić go w json jeśli wolisz, lub zmień to na coś innego.

Oto jak wygląda wynikowy plik:

  • regions.html

A oto kod źródłowy tego pliku:

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

Generuje więc cały dokument HTML – nie tylko tabelę.

Zauważysz, że niektóre CSS zostały dodane do celów stylizacji, a JavaScript został dodany, aby utworzyć funkcję wyszukiwania.

Usuń opinię

Możesz usunąć X rows selected z 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;

W tym przypadku włączyłem FEEDBACK ponownie po wyeksportowaniu pliku.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Polityka poprawek

  2. Jak zaszyfrować hasło w Oracle?

  3. Jak uzyskać informacje o typie zdefiniowanym przez użytkownika?

  4. Jak przekonwertować liczbę na słowa - ORACLE

  5. Dokumentacja Oracle