我需要在外壳程序脚本中使用自定义的背景色和前景色从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>