Lorsque vous utilisez SQLcl pour interroger la base de données Oracle, vous pouvez utiliser le SET SQLFORMAT
commande pour déterminer le format des résultats.
Vous pouvez également utiliser des commentaires intégrés pour spécifier le format directement dans votre requête.
Par exemple, vous pouvez utiliser ce qui suit pour générer les résultats au format CSV :
SET SQLFORMAT csv;
SELECT * FROM regions;
Ou vous pouvez le faire comme ceci :
SELECT /*csv*/ * FROM regions;
Options de formatage
Les options suivantes peuvent être utilisées pour spécifier le format de sortie :
Option | Description |
---|---|
default | Efface tout le formatage et le définit sur le formatage de style SQL*PLUS. Cette option ne fonctionne qu'avec le SET SQLFORMAT commande. |
ansiconsole | Formatage avancé basé sur les données et la taille du terminal. |
fixed | Largeur fixe. |
csv | Format séparé par des virgules avec des chaînes entre guillemets doubles (" ). |
loader | Tuyau (| ) format délimité avec des chaînes entre guillemets doubles (" ). |
delimited | Format CSV avec séparateur facultatif, enceinte gauche et droite. |
text | Affiche les résultats sous forme de texte, sans séparateurs. Cette option n'est pas documentée dans l'HELP option. |
insert | Génère SQL INSERT déclarations à partir des résultats. |
json | Format JSON correspondant au format de collection ORDS. |
json-formatted | Format JSON correspondant au format de collection ORDS et joliment imprimé. Le JSON est présenté dans un format plus lisible par l'homme. |
xml | Format XML. |
html | Format tabulaire HTML. Génère le code d'un document HTML avec un tableau avec style et un outil de recherche JavaScript. |
Exemples
Vous trouverez ci-dessous des exemples pour illustrer les options ci-dessus.
default
Efface tout le formatage et le définit sur le formatage de style SQL*PLUS.
SET SQLFORMAT default;
SELECT * FROM regions;
Résultat :
SQL Format Cleared REGION_ID REGION_NAME ---------- ------------------------- 1 Europe 2 Americas 3 Asia 4 Middle East and Africa
ansiconsole
Formatage avancé basé sur les données et la taille du terminal.
SET SQLFORMAT ansiconsole;
SELECT * FROM regions;
Résultat :
REGION_ID REGION_NAME ____________ _________________________ 1 Europe 2 Americas 3 Asia 4 Middle East and Africa
fixed
Largeur fixe.
SET SQLFORMAT fixed;
SELECT * FROM regions;
Résultat :
"REGION_ID" "REGION_NAME" "1" "Europe" "2" "Americas" "3" "Asia" "4" "Middle East and Africa"
csv
Format séparé par des virgules avec des chaînes entre guillemets doubles ("
).
SET SQLFORMAT csv;
SELECT * FROM regions;
Résultat :
"REGION_ID","REGION_NAME" 1,"Europe" 2,"Americas" 3,"Asia" 4,"Middle East and Africa"
loader
Tuyau (|
) format délimité avec des chaînes entre guillemets doubles ("
).
SET SQLFORMAT loader;
SELECT * FROM regions;
Résultat :
1|"Europe"| 2|"Americas"| 3|"Asia"| 4|"Middle East and Africa"|
delimited
Format CSV avec séparateur en option, boîtier gauche et droit. Cela vous permet de choisir vos propres délimiteurs.
SET SQLFORMAT delimited , < >;
SELECT * FROM regions;
Résultat :
<REGION_ID>,<REGION_NAME> 1,<Europe> 2,<Americas> 3,<Asia> 4,<Middle East and Africa>
text
Affiche les résultats sous forme de texte, sans séparateurs. Cette option n'est pas documentée dans l'HELP
option.
SET SQLFORMAT text;
SELECT * FROM regions;
Résultat :
"REGION_ID"null"REGION_NAME" 1null"Europe" 2null"Americas" 3null"Asia" 4null"Middle East and Africa"
insert
Génère SQL INSERT
déclarations à partir des résultats.
SET SQLFORMAT insert;
SELECT * FROM regions;
Résultat :
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 correspondant au format de collection ORDS.
SET SQLFORMAT json;
SELECT * FROM regions;
Résultat :
{"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 correspondant au format de collection ORDS et joli imprimé. Le JSON est présenté dans un format plus lisible par l'homme.
SET SQLFORMAT json-formatted;
SELECT * FROM regions;
Résultat :
{ "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;
Résultat :
<?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 tabulaire HTML. Génère le code d'un document HTML avec un tableau avec style et un outil de recherche JavaScript.
SET SQLFORMAT html;
SELECT * FROM regions;
Le code HTML résultant est assez volumineux, car il crée un document HTML, ajoute des styles, JavaScript, etc.
Voici à quoi ressemble le code HTML résultant lorsqu'il est enregistré dans un .html
fichier et rendu dans un navigateur :
regions.html
Et voici le code HTML réel qui a été généré :
<!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>