SQLクエリの2つのHTMLファイル出力をシェルスクリプトの1つのデフォルトのHTML出力ファイルに変換する

SQLクエリの2つのHTMLファイル出力をシェルスクリプトの1つのデフォルトのHTML出力ファイルに変換する

シェルスクリプトは2つの異なるSQLクエリを使用し、それをHTMLにフォーマットしました(例:(eg- ab.html, cd.html).シェルスクリプトは - >

#/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ファイルを1つの出力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関数を使用して、2つのテーブルを結合するために使用できる計算フィールドを作成できます。共通点がなく、FULL OUTER JOINを使用しているためです。

おすすめ記事