在 shell 脚本中将 SQL 查询的 2 个 HTML 文件输出转换为 1 个主要 HTML 输出文件

在 shell 脚本中将 SQL 查询的 2 个 HTML 文件输出转换为 1 个主要 HTML 输出文件

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

相关内容