Oracle
 sql >> база данни >  >> RDS >> Oracle

Експортирайте резултатите от заявката на Oracle в HTML файл, когато използвате SQLcl

Когато използвате SQLcl с Oracle Database, можете да използвате SPOOL команда за експортиране на резултатите от вашата заявка във файл с .html разширение и можете да зададете SQLFORMAT към html за да изведете действителните резултати от заявката в HTML формат.

Пример

Ето пример за демонстрация:

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

Ето какво направи, ред по ред:

  • Първият ред задава SQLFORMAT към html . Това гарантира, че нашият резултат .html файлът всъщност съдържа HTML код.
  • Вторият ред използва SPOOL команда, за да посочите къде ще бъде записан изходният файл. Не забравяйте да промените /Users/barney/data/regions.html до местоположение във вашата система и подходящо име на файл.
  • На третия ред изпълних SQL заявката – резултатите, за които експортирам. В този случай експортирах целите regions маса.
  • След това обърнах SPOOL изключено.
  • Накрая зададох SQLFORMAT обратно към първоначалната ми настройка, която беше ansiconsole . Това е по избор – можете да го оставите на json ако предпочитате, или го променете с нещо друго.

Ето как изглежда полученият файл:

  • regions.html

И ето изходния код зад този файл:

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

Така той генерира целия HTML документ – не само таблицата.

Ще забележите, че някои CSS са добавени за целите на стилизирането и JavaScript е добавен за създаване на функция за търсене.

Премахване на обратна връзка

Можете да премахнете X rows selected с 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;

В този случай обърнах FEEDBACK отново след експортиране на файла.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Разлика между LockModeType Jpa

  2. HEXTORAW() Функция в Oracle

  3. В тригер на Oracle мога ли да присвоя ново и старо към променлива тип ред?

  4. Многоезична поддръжка в 11i/R12

  5. Обръщане на низ в SQL и PL/SQL Пример