вторник, 7 августа 2018 г.

SQLcl sqlformat


DEFAULT

Формат DEFAULT очищает все предыдущие настройки SQLFORMAT и возвращает значение по умолчанию.

SET SQLFORMAT DEFAULT
select name, created, log_mode, archive_change# from v$database;

SQL Format Cleared

NAME      CREATED   LOG_MODE     ARCHIVE_CHANGE#
--------- --------- ------------ ---------------
MYDB      02-AUG-18 ARCHIVELOG           1219143


CSV

Формат CSV создает стандартный вывод с разделителями-запятыми, с строковыми значениями,
заключенными в двойные кавычки. Первая строка содержит имена столбцов.

SET SQLFORMAT CSV
select name, created, log_mode, archive_change# from v$database;


"NAME","CREATED","LOG_MODE","ARCHIVE_CHANGE#"
"MYDB",02-AUG-18,"ARCHIVELOG",1219143


HTML

Формат HTML создает HTML для гибкой таблицы. Содержимое таблицы динамически изменяется,
чтобы соответствовать строке поиска, введенной в текстовое поле в верхнем левом углу.

SET SQLFORMAT HTML
select name, created, log_mode, archive_change# from v$database;


<!DOCTYPE html> <html> <head> <meta charset='UTF-8'> <title>Responsive Table</title> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <style> * { margin: 0; padding: 0; } body { font: 14px/1.4 Georgia, 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(0):before { content: "NAME"; } td:nth-of-type(1):before { content: "CREATED"; } td:nth-of-type(2):before { content: "LOG_MODE"; } td:nth-of-type(3):before { content: "ARCHIVE_CHANGE#"; } } /* 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"> lsearch = function(){ //this.term = document.getElementById('S').value.toUpperCase(); var s = document.getElementById('search').value.toLowerCase(); rows = document.getElementById('data').getElementsByTagName('TR'); for(var i=0;i<rows.length;i++){ if (s =="" ){ rows[i].style.display =''; } else if ( rows[i].innerText.toLowerCase().indexOf(s) != -1 ) { rows[i].style.display =''; } else { rows[i].style.display ='none'; } } this.time = false; } </script> </head> <body> <div><input type="text" size="30" maxlength="1000" value="" id="search" onkeyup="lsearch();" /><input type="button" value="Go" onclick="lsearch();"/> </div> <table><thead><tr> <th>NAME</th> <th>CREATED</th> <th>LOG_MODE</th> <th>ARCHIVE_CHANGE#</th> </tr></thead> <tbody id="data"> <tr> <td>MYDB</td> <td>02-AUG-18</td> <td>ARCHIVELOG</td> <td align="right">1219143</td> </tr> </tbody></table><!-- SQL: null--></body></html>


XML

Формат XML создает XML-документ на основе тегов. Все данные представлены как теги CDATA.

SET SQLFORMAT XML
select name, created, log_mode, archive_change# from v$database;



<?xml version='1.0' encoding='UTF-8' ?> <RESULTS> <ROW> <COLUMN NAME="NAME"><![CDATA[MYDB]]></COLUMN> <COLUMN NAME="CREATED"><![CDATA[02-AUG-18]]></COLUMN> <COLUMN NAME="LOG_MODE"><![CDATA[ARCHIVELOG]]></COLUMN> <COLUMN NAME="ARCHIVE_CHANGE#"><![CDATA[1219143]]></COLUMN> </ROW> </RESULTS>

JSON

Формат JSON создает документ JSON, содержащий определения столбцов вместе с данными,
которые они содержат.

SET SQLFORMAT JSON
select name, created, log_mode, archive_change# from v$database;



 <?xml version='1.0' encoding='UTF-8' ?> <RESULTS> <ROW> <COLUMN NAME="NAME"><![CDATA[MYDB]]></COLUMN> <COLUMN NAME="CREATED"><![CDATA[02-AUG-18]]></COLUMN> <COLUMN NAME="LOG_MODE"><![CDATA[ARCHIVELOG]]></COLUMN> <COLUMN NAME="ARCHIVE_CHANGE#"><![CDATA[1219143]]></COLUMN> </ROW> </RESULTS> {"results":[{"columns":[{"name":"NAME","type":"VARCHAR2"},{"name":"CREATED","type":"DATE"},{"name":"LOG_MODE","type":"VARCHAR2"},{"name":"ARCHIVE_CHANGE#","type":"NUMBER"}],"items": [ {"name":"MYDB","created":"02-AUG-18","log_mode":"ARCHIVELOG","archive_change#":1219143} ]}]}


ANSICONSOLE

Формат ANSICONSOLE изменяет размер столбцов на ширину данных для экономии места.
Он также подчеркивает столбцы, а не использует отдельную строку вывода.

SET SQLFORMAT ANSICONSOLE
select name, created, log_mode, archive_change# from v$database;


NAME   CREATED     LOG_MODE     ARCHIVE_CHANGE#  
MYDB   02-AUG-18   ARCHIVELOG           1219143


INSERT

Формат INSERT создает инструкции INSERT, которые могут использоваться для воссоздания строк в таблице.

SET SQLFORMAT INSERT
select name, created, log_mode, archive_change# from v$database;

REM INSERTING into V$DATABASE
SET DEFINE OFF;
Insert into V$DATABASE (NAME,CREATED,LOG_MODE,ARCHIVE_CHANGE#) values ('MYDB',to_date('02-AUG-18','DD-MON-RR'),'ARCHIVELOG',1219143);


LOADER

Формат LOADER создает выходные данные разделённые символом "|" с строковыми значениями,
заключенными в двойные кавычки. Имена столбцов не включаются в вывод.

SET SQLFORMAT LOADER
select name, created, log_mode, archive_change# from v$database;


"MYDB"|2018-08-02 16:40:51|"ARCHIVELOG"|1219143|


FIXED

Формат FIXED создает столбцы фиксированной ширины со всеми данными, заключенными в двойные кавычки.
Первая строка содержит имена столбцов.

SET SQLFORMAT FIXED
select name, created, log_mode, archive_change# from v$database;

"NAME"                        "CREATED"                     "LOG_MODE"                    "ARCHIVE_CHANGE#"            
"MYDB"                        "02-AUG-18"                   "ARCHIVELOG"                  "1219143"                    


DELIMITED

Формат DELIMITED - это особый случай, который позволяет вам вручную определить строку разделителя,
а также символы, которые будут использоваться для обрамления строковых значений.
Основной формат выглядит следующим образом.
SET SQLFORMAT DELIMITED <разделитель> <слева от строки> <справа от строки>

SET SQLFORMAT DELIMITED @#@ " "
select name, created, log_mode, archive_change# from v$database;


"NAME"@#@"CREATED"@#@"LOG_MODE"@#@"ARCHIVE_CHANGE#"
"MYDB"@#@02-AUG-18@#@"ARCHIVELOG"@#@1219143

SET SQLFORMAT DELIMITED ; ' '
select name, created, log_mode, archive_change# from v$database;


'NAME';'CREATED';'LOG_MODE';'ARCHIVE_CHANGE#'
'MYDB';02-AUG-18;'ARCHIVELOG';1219143

SET SQLFORMAT DELIMITED ;
select name, created, log_mode, archive_change# from v$database;

"NAME","CREATED","LOG_MODE","ARCHIVE_CHANGE#"
"MYDB",02-AUG-18,"ARCHIVELOG",1219143

SET SQLFORMAT DELIMITED ; # $
select name, created, log_mode, archive_change# from v$database;

#NAME$;#CREATED$;#LOG_MODE$;#ARCHIVE_CHANGE#$
#MYDB$;02-AUG-18;#ARCHIVELOG$;1219143

по умолчанию разделитель запятая а строка заключается в двойные кавычки:


SET SQLFORMAT DELIMITED
select name, created, log_mode, archive_change# from v$database;


"NAME","CREATED","LOG_MODE","ARCHIVE_CHANGE#"
"MYDB",02-AUG-18,"ARCHIVELOG",1219143