SQLclを使用してOracleDatabaseにクエリを実行する場合は、 SET SQLFORMATを使用できます。 結果の形式を決定するコマンド。
インラインコメントを使用して、クエリ内から直接形式を指定することもできます。
たとえば、次を使用して結果をCSV形式で出力できます。
SET SQLFORMAT csv;
SELECT * FROM regions; または、次のように行うことができます:
SELECT /*csv*/ * FROM regions; フォーマットオプション
次のオプションを使用して、出力形式を指定できます。
| オプション | 説明 |
|---|---|
デフォルト | すべてのフォーマットをクリアし、SQL*PLUSスタイルのフォーマットに設定します。このオプションは、 SET SQLFORMATでのみ機能します コマンド。 |
ansiconsole | データと端末サイズに基づく高度なフォーマット。 |
修正済み | 固定幅。 |
csv | 二重引用符で囲まれた文字列を含むカンマ区切り形式( " 。 |
ローダー | パイプ( | )二重引用符で囲まれた文字列を含む区切り形式( " 。 |
区切り | オプションのセパレータ、左右のエンクロージャを使用したCSV形式。 |
テキスト | 結果を区切り文字なしでテキストとして出力します。このオプションは、 HELPに記載されていません オプション。 |
挿入 | SQL INSERTを生成します 結果からのステートメント。 |
json | ORDSコレクション形式と一致するJSON形式。 |
json-formatted | ORDSコレクション形式と一致するJSON形式できれいに印刷されています。 JSONは、より人間が読める形式で表示されます。 |
xml | XML形式。 |
html | HTML表形式。スタイリングとJavaScript検索ツールを備えたテーブルを使用してHTMLドキュメントのコードを生成します。 |
例
以下は、上記のオプションを示す例です。
デフォルト
すべてのフォーマットをクリアし、SQL*PLUSスタイルのフォーマットに設定します。
SET SQLFORMAT default;
SELECT * FROM regions; 結果:
SQL Format Cleared
REGION_ID REGION_NAME
---------- -------------------------
1 Europe
2 Americas
3 Asia
4 Middle East and Africa ansiconsole
データと端末サイズに基づく高度なフォーマット。
SET SQLFORMAT ansiconsole;
SELECT * FROM regions; 結果:
REGION_ID REGION_NAME
____________ _________________________
1 Europe
2 Americas
3 Asia
4 Middle East and Africa 修正済み
固定幅。
SET SQLFORMAT fixed;
SELECT * FROM regions; 結果:
"REGION_ID" "REGION_NAME" "1" "Europe" "2" "Americas" "3" "Asia" "4" "Middle East and Africa"
csv
二重引用符で囲まれた文字列を含むカンマ区切り形式( " 。
SET SQLFORMAT csv;
SELECT * FROM regions; 結果:
"REGION_ID","REGION_NAME" 1,"Europe" 2,"Americas" 3,"Asia" 4,"Middle East and Africa"
ローダー
パイプ( | )二重引用符で囲まれた文字列を含む区切り形式( " 。
SET SQLFORMAT loader;
SELECT * FROM regions; 結果:
1|"Europe"| 2|"Americas"| 3|"Asia"| 4|"Middle East and Africa"|
区切り
オプションの区切り文字、左、および右のエンクロージャを含むCSV形式。これにより、独自の区切り文字を選択できます。
SET SQLFORMAT delimited , < >;
SELECT * FROM regions; 結果:
<REGION_ID>,<REGION_NAME> 1,<Europe> 2,<Americas> 3,<Asia> 4,<Middle East and Africa>
テキスト
HELPに記載されていません オプション。
SET SQLFORMAT text;
SELECT * FROM regions; 結果:
"REGION_ID"null"REGION_NAME" 1null"Europe" 2null"Americas" 3null"Asia" 4null"Middle East and Africa"
挿入コード>
SQL INSERTを生成します 結果からのステートメント。
SET SQLFORMAT insert;
SELECT * FROM regions; 結果:
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
ORDSコレクション形式に一致するJSON形式。
SET SQLFORMAT json;
SELECT * FROM regions; 結果:
{"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
ORDSコレクション形式と一致し、きれいに印刷されたJSON形式。 JSONは、より人間が読める形式で表示されます。
SET SQLFORMAT json-formatted;
SELECT * FROM regions; 結果:
{
"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
XML形式。
SET SQLFORMAT xml;
SELECT * FROM regions; 結果:
<?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
HTMLの表形式。スタイリングとJavaScript検索ツールを備えたテーブルを使用してHTMLドキュメントのコードを生成します。
SET SQLFORMAT html;
SELECT * FROM regions; 結果のHTMLコードは、HTMLドキュメントを作成し、スタイル、JavaScriptなどを追加するため、非常に大きくなります。
.htmlに保存した場合の結果のHTMLは次のようになります。 ファイルとブラウザでのレンダリング:
-
regions.html
生成された実際の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>