Мне нужно сгенерировать html-отчет из sqlplus с моим собственным фоном и цветами переднего плана в сценарии оболочки.
Случай 1 : я использовал команду sqlplus -M "HTML ON"
в сценарии оболочки и SET MARKUP
с настроенными цветами.Но все же цвета по умолчанию появляются в конечном сгенерированном файле oplog.html.
Случай 2 : при попытке без метод sqlplus -M "HTML ON"
, т. Е. Обычного sqlplus, а затем установки разметки (такой же, как та, которая использовалась в случае 1)Я не получаю правильный полный вывод html (то есть заголовок, заголовок и т. Д. Отсутствует).
Какой метод следует использовать, чтобы получить цвета не по умолчанию.
Это код для случая 1 .Этот метод дает правильный HTML-отчет, НО БЕЗ ПОЛЬЗОВАТЕЛЬСКИХ ЦВЕТОВ, несмотря на упоминание его в разметке набора
#!/bin/sh
sqlplus -M "HTML ON" -s "/as sysdba"<<EOF
spool oplog.html
set markup HTML ON HEAD "<style type='text/css'> body {font:10pt Arial,Helvetica,sans-serif; color:black; background:White;} p {font:10pt Arial,Helvetica,sans-serif; color:black; background:White;} table,tr,td {font:10pt Arial,Helvetica,sans-serif; color:Black; background:#f7f7e7; padding:0px 0px 0px 0px; margin:0px 0px 0px 0px;} th {font:bold 10pt Arial,Helvetica,sans-serif; color:#fcfcbe; background:#f8fb92; padding:0px 0px 0px 0px;} h1 {font:16pt Arial,Helvetica,Geneva,sans-serif; color:#fcfcbe; background-color:White; border-bottom:1px solid #f8fb92; margin-top:0pt; margin-bottom:0pt; padding:0px 0px 0px 0px;-
} h2 {font:bold 10pt Arial,Helvetica,Geneva,sans-serif; color:#fcfcbe; background-color:White; margin-top:4pt; margin-bottom:0pt;} a {font:9pt Arial,Helvetica,sans-serif; color:#663300; background:#ffffff; margin-top:0pt; margin-bottom:0pt; vertical-align:top;}</style><title>SQL*Plus Report</title>" BODY "" TABLE "border='1' width='90%' align='center' summary='Script output'" SPOOL ON ENTMAP OFF PREFORMAT OFF
select * from dual;
spool off
EOF
Это код варианта 2 :.Этот метод не дает полного вывода HTML.
#!/bin/sh
sqlplus -S "/as sysdba" @script.sql > op.log
script.sql
set markup HTML ON HEAD "<style type='text/css'> body {font:10pt Arial,Helvetica,sans-serif; color:black; background:White;} p {font:10pt Arial,Helvetica,sans-serif; color:black; background:White;} table,tr,td {font:10pt Arial,Helvetica,sans-serif; color:Black; background:#f7f7e7; padding:0px 0px 0px 0px; margin:0px 0px 0px 0px;} th {font:bold 10pt Arial,Helvetica,sans-serif; color:#fcfcbe; background:#f8fb92; padding:0px 0px 0px 0px;} h1 {font:16pt Arial,Helvetica,Geneva,sans-serif; color:#fcfcbe; background-color:White; border-bottom:1px solid #f8fb92; margin-top:0pt; margin-bottom:0pt; padding:0px 0px 0px 0px;-
} h2 {font:bold 10pt Arial,Helvetica,Geneva,sans-serif; color:#fcfcbe; background-color:White; margin-top:4pt; margin-bottom:0pt;} a {font:9pt Arial,Helvetica,sans-serif; color:#663300; background:#ffffff; margin-top:0pt; margin-bottom:0pt; vertical-align:top;}</style><title>SQL*Plus Report</title>" BODY "" TABLE "border='1' width='90%' align='center' summary='Script output'" SPOOL ON ENTMAP OFF PREFORMAT OFF
select * from dual;
O / p в случае 1 : я получаю вывод html.Но я должен получить результат, который содержит настроенные цвета, которые я упоминал в SET MARKUP
...Вместо этого окончательный html имеет значения цвета по умолчанию.
O / p для случая 2 : я не получаю полный вывод html, несмотря на установку команды SET MARKUP
.
<p>
<table border='1' width='90%' align='center' summary='Script output'>
<tr>
<th scope="col">
D
</th>
</tr>
<tr>
<td>
X
</td>
</tr>
</table>
<p>