1

In shell script, I used 2 different SQL query & output of these 2 files in HTML format like (eg- ab.html, cd.html). Shell script as ->

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

Then getting output.html file as ->

 ______________________________ | col_1 | col_2 | col_3 | | ..... | ...... | ..... | | ..... | ...... | ..... | |___________|________|_________| ______________________________ | col_4 | | ...... | |______________________________| 

But I want final output.html like col_1, col_2, col_3, col_4 column in one table like below ->

 ______________________________________ | col_1 | col_2 | col_3 | col_4| | ..... | ...... | ..... | .....| | ..... | ...... | ..... | .....| |___________|________|__________|______| 

Could you please help me how to merge these 2 HTML file into one output HTML file so that we can able to see like above format. I just draw HTML table as example but internal border always comes in HTML table, so please don't look HTML table format that I used.

3
  • Is the table of 1st query different from table of 2nd query? Is performing only one query that outputs the four columns a possibility?CommentedFeb 27, 2020 at 9:58
  • In your scripts is redundant the redirection to the HTML files since the spool command already does that job.CommentedFeb 27, 2020 at 10:22
  • @PauloTomé DML operation is also performing. SO the 2nd query will run after DML operation perform. So we can.t use all 4 columns in same query.
    – Shahin P
    CommentedFeb 27, 2020 at 10:24

1 Answer 1

-1

Joining html content after the tag is not easy and recommended. We could use SQL iteslf to generate the.

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 

We can use ROW_NUMBER function to create a calculated field that can be used to join the two tables together since we dont have anything in common and use FULL OUTER JOIN.

1
  • (1) As you can see, Stack Exchange doesn’t allow table markup (HTML).  It primarily uses Markdown with very limited HTML. (2) Please add a lot more explanation.  You are showing a table with three columns.  The OP already has that; how does your answer help?  Why are you doing a join between two tables?  Etc. … … … … … … … … … … … … … … … … … … … … … … Please do not respond in comments; edit your answer to make it clearer and more complete.CommentedMar 30, 2020 at 4:05

You must log in to answer this question.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.