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

Opsi Pemformatan SQLcl (Oracle)

Saat menggunakan SQLcl untuk mengkueri Oracle Database, Anda dapat menggunakan SET SQLFORMAT perintah untuk menentukan format hasil.

Anda juga dapat menggunakan komentar sebaris untuk menentukan format langsung dari dalam kueri Anda.

Misalnya, Anda dapat menggunakan yang berikut ini untuk menampilkan hasil dalam format CSV:

SET SQLFORMAT csv;
SELECT * FROM regions;

Atau Anda bisa melakukannya seperti ini:

SELECT /*csv*/ * FROM regions;

Opsi Pemformatan

Opsi berikut dapat digunakan untuk menentukan format output:

Opsi Deskripsi
default Hapus semua pemformatan dan setel ke pemformatan gaya SQL*PLUS. Opsi ini hanya berfungsi dengan SET SQLFORMAT perintah.
ansiconsole Pemformatan lanjutan berdasarkan data dan ukuran terminal.
fixed Lebar tetap.
csv Format dipisahkan koma dengan string yang diapit tanda kutip ganda (" ).
loader Pipa (| ) format yang dibatasi dengan string yang diapit tanda kutip ganda (" ).
delimited Format CSV dengan pemisah opsional, penutup kiri, dan kanan.
text Mengeluarkan hasil sebagai teks, tanpa pemisah. Opsi ini tidak didokumentasikan dalam HELP pilihan.
insert Menghasilkan SQL INSERT pernyataan dari hasil.
json Format JSON cocok dengan Format Koleksi ORDS.
json-formatted Format JSON cocok dengan Format Koleksi ORDS dan dicetak dengan cantik. JSON disajikan dalam format yang lebih mudah dibaca manusia.
xml format XML.
html format tabel HTML. Menghasilkan kode untuk dokumen HTML dengan tabel dengan gaya dan alat pencarian JavaScript.

Contoh

Di bawah ini adalah contoh untuk mendemonstrasikan opsi di atas.

default

Hapus semua pemformatan dan setel ke pemformatan gaya SQL*PLUS.

SET SQLFORMAT default;
SELECT * FROM regions;

Hasil:

SQL Format Cleared

 REGION_ID REGION_NAME              
---------- -------------------------
         1 Europe                   
         2 Americas                 
         3 Asia                     
         4 Middle East and Africa   

ansiconsole

Pemformatan lanjutan berdasarkan data dan ukuran terminal.

SET SQLFORMAT ansiconsole;
SELECT * FROM regions;

Hasil:

   REGION_ID               REGION_NAME 
____________ _________________________ 
           1 Europe                    
           2 Americas                  
           3 Asia                      
           4 Middle East and Africa    

fixed

Lebar tetap.

SET SQLFORMAT fixed;
SELECT * FROM regions;

Hasil:

"REGION_ID"                   "REGION_NAME"                 
"1"                           "Europe"                      
"2"                           "Americas"                    
"3"                           "Asia"                        
"4"                           "Middle East and Africa"

csv

Format yang dipisahkan koma dengan string yang diapit tanda kutip ganda (" ).

SET SQLFORMAT csv;
SELECT * FROM regions;

Hasil:

"REGION_ID","REGION_NAME"
1,"Europe"
2,"Americas"
3,"Asia"
4,"Middle East and Africa"

loader

Pipa (| ) format yang dibatasi dengan string yang diapit tanda kutip ganda (" ).

SET SQLFORMAT loader;
SELECT * FROM regions;

Hasil:

 1|"Europe"|
 2|"Americas"|
 3|"Asia"|
 4|"Middle East and Africa"|

delimited

Format CSV dengan pemisah opsional, penutup kiri, dan kanan. Ini memungkinkan Anda untuk memilih pembatas Anda sendiri.

SET SQLFORMAT delimited , < >;
SELECT * FROM regions;

Hasil:

<REGION_ID>,<REGION_NAME>
1,<Europe>
2,<Americas>
3,<Asia>
4,<Middle East and Africa>

text

Mengeluarkan hasil sebagai teks, tanpa pemisah. Opsi ini tidak didokumentasikan dalam HELP pilihan.

SET SQLFORMAT text;
SELECT * FROM regions;

Hasil:

"REGION_ID"null"REGION_NAME"
1null"Europe"
2null"Americas"
3null"Asia"
4null"Middle East and Africa"

insert

Menghasilkan SQL INSERT pernyataan dari hasil.

SET SQLFORMAT insert;
SELECT * FROM regions;

Hasil:

REM INSERTING into REGIONS
SET DEFINE OFF;
Insert into REGIONS (REGION_ID,REGION_NAME) values (1,'Europe');
Insert into REGIONS (REGION_ID,REGION_NAME) values (2,'Americas');
Insert into REGIONS (REGION_ID,REGION_NAME) values (3,'Asia');
Insert into REGIONS (REGION_ID,REGION_NAME) values (4,'Middle East and Africa');

json

Format JSON yang cocok dengan Format Koleksi ORDS.

SET SQLFORMAT json;
SELECT * FROM regions;

Hasil:

{"results":[{"columns":[{"name":"REGION_ID","type":"NUMBER"},{"name":"REGION_NAME","type":"VARCHAR2"}],"items":
[
{"region_id":1,"region_name":"Europe"}
,{"region_id":2,"region_name":"Americas"}
,{"region_id":3,"region_name":"Asia"}
,{"region_id":4,"region_name":"Middle East and Africa"}
]}]}

json-formatted

Format JSON cocok dengan Format Koleksi ORDS dan dicetak cantik. JSON disajikan dalam format yang lebih mudah dibaca manusia.

SET SQLFORMAT json-formatted;
SELECT * FROM regions;

Hasil:

{
  "results" : [
    {
      "columns" : [
        {
          "name" : "REGION_ID",
          "type" : "NUMBER"
        },
        {
          "name" : "REGION_NAME",
          "type" : "VARCHAR2"
        }
      ],
      "items" : [
        {
          "region_id" : 1,
          "region_name" : "Europe"
        },
        {
          "region_id" : 2,
          "region_name" : "Americas"
        },
        {
          "region_id" : 3,
          "region_name" : "Asia"
        },
        {
          "region_id" : 4,
          "region_name" : "Middle East and Africa"
        }
      ]
    }
  ]
}

xml

format XML.

SET SQLFORMAT xml;
SELECT * FROM regions;

Hasil:

<?xml version='1.0'  encoding='UTF-8' ?>
<RESULTS>
	<ROW>
		<COLUMN NAME="REGION_ID"><![CDATA[1]]></COLUMN>
		<COLUMN NAME="REGION_NAME"><![CDATA[Europe]]></COLUMN>
	</ROW>
	<ROW>
		<COLUMN NAME="REGION_ID"><![CDATA[2]]></COLUMN>
		<COLUMN NAME="REGION_NAME"><![CDATA[Americas]]></COLUMN>
	</ROW>
	<ROW>
		<COLUMN NAME="REGION_ID"><![CDATA[3]]></COLUMN>
		<COLUMN NAME="REGION_NAME"><![CDATA[Asia]]></COLUMN>
	</ROW>
	<ROW>
		<COLUMN NAME="REGION_ID"><![CDATA[4]]></COLUMN>
		<COLUMN NAME="REGION_NAME"><![CDATA[Middle East and Africa]]></COLUMN>
	</ROW>
</RESULTS>

html

format tabel HTML. Menghasilkan kode untuk dokumen HTML dengan tabel dengan gaya dan alat pencarian JavaScript.

SET SQLFORMAT html;
SELECT * FROM regions;

Kode HTML yang dihasilkan cukup besar, karena membuat dokumen HTML, menambahkan gaya, JavaScript, dll.

Berikut tampilan HTML yang dihasilkan saat disimpan ke .html file dan dirender di browser:

  • regions.html

Dan inilah kode HTML sebenarnya yang dihasilkan:

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

  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Buat Pengguna Oracle Baru dan Berikan Hak Istimewa:Sintaks dan Contoh

  2. ORA-06508:PL/SQL:tidak dapat menemukan unit program yang dipanggil

  3. Perhitungan Oracle Age dari Tanggal lahir dan Hari Ini

  4. Memanggil prosedur tersimpan Oracle dari C #?

  5. Memutar Tabel dalam SQL (yaitu Tabulasi silang / tabulasi silang)