更改sqlplus -M上的默认HTML头设置

时间:2019-03-28 16:16:55

标签: shell sqlplus

我需要在外壳程序脚本中使用自定义的背景色和前景色从sqlplus生成html报告。

案例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;

案例1的O / p :我得到了html输出。但是我应该得到包含SET MARKUP中提到的自定义颜色的结果。相反,最终的html具有默认的颜色值。

案例2的O / p :尽管设置了SET MARKUP命令,但我没有得到完整的html输出。

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

0 个答案:

没有答案