![在 shell 脚本中将 SQL 查询的 2 个 HTML 文件输出转换为 1 个主要 HTML 输出文件](https://linux22.com/image/168265/%E5%9C%A8%20shell%20%E8%84%9A%E6%9C%AC%E4%B8%AD%E5%B0%86%20SQL%20%E6%9F%A5%E8%AF%A2%E7%9A%84%202%20%E4%B8%AA%20HTML%20%E6%96%87%E4%BB%B6%E8%BE%93%E5%87%BA%E8%BD%AC%E6%8D%A2%E4%B8%BA%201%20%E4%B8%AA%E4%B8%BB%E8%A6%81%20HTML%20%E8%BE%93%E5%87%BA%E6%96%87%E4%BB%B6.png)
在 shell 脚本中,我使用了 2 个不同的 SQL 查询并以 HTML 格式(例如(eg- ab.html, cd.html)
. shell 脚本为 ->
#/bin/ksh
ab=$(SQLPLUS -s <username>/<password>@DB <<EOF
set heading ON
set trimspool OFF
SET MARKUP HTML ON
set feedback off
spool ab.html
select col_1, col_2, col_3 from <tab>;
spool off;
exit;
EOF)
echo "$ab" > ab.html
----- DML operation perform
cd=$(SQLPLUS -s <username>/<password>@DB <<EOF
set heading ON
set trimspool OFF
SET MARKUP HTML ON
set feedback off
spool cd.html
select col_4 from <tab>;
spool off;
exit;
EOF)
echo "$cd" > cd.html
cat ab.html cd.html > output.html
exit 0
然后获取output.html
文件为 ->
______________________________
| col_1 | col_2 | col_3 |
| ..... | ...... | ..... |
| ..... | ...... | ..... |
|___________|________|_________|
______________________________
| col_4 |
| ...... |
|______________________________|
但我想要最后output.html
像 col_1、col_2、col_3、col_4 列在一个表中,如下所示 ->
______________________________________
| col_1 | col_2 | col_3 | col_4|
| ..... | ...... | ..... | .....|
| ..... | ...... | ..... | .....|
|___________|________|__________|______|
您能帮助我如何将这 2 个 HTML 文件合并到一个输出 HTML 文件中,以便我们能够看到如上的格式。我只是绘制 HTML 表格作为示例,但内部边框始终出现在 HTML 表格中,所以请不要查看我使用的 HTML 表格格式。
答案1
在标签后加入 html 内容并不容易,推荐使用。我们可以使用 SQLiteslf 来生成。
SELECT t1.owner, t1.object_id, t2.name
FROM (
SELECT owner, object_id,
ROW_NUMBER() OVER (ORDER BY owner) as rn
FROM dba_objects where rownum < 10) t1
FULL OUTER JOIN (
SELECT name,
ROW_NUMBER() OVER (ORDER BY name) as rn
FROM v$database) t2
ON t1.rn = t2.rn
我们可以使用 ROW_NUMBER 函数创建一个计算字段,该字段可用于将两个表连接在一起,因为我们没有任何共同点并使用 FULL OUTER JOIN。