sql >> データベース >  >> RDS >> Oracle

SQLclを使用する場合、Oracleクエリ結果をHTMLファイルにエクスポートする

    Oracle DatabaseでSQLclを使用する場合は、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コードが含まれています。
    • 2行目はSPOOLを使用しています 出力ファイルが書き込まれる場所を指定するコマンド。必ず/Users/barney/data/regions.htmlを変更してください システム上の場所と適切なファイル名に移動します。
    • 3行目で、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. MariaDBの時間値からマイクロ秒を抽出する4つの関数

    2. ON [PRIMARY]とはどういう意味ですか?

    3. SQLiteテーブルの作成

    4. Djangoのユニークな一緒の制約の失敗?