SQL*加上假脱机到 .xls/.html 帮助,需要并排的表格

SQL*Plus spooling to .xls/.html help, need tables to be side by side

所以我的设置是:

    set entmap off
    set feedback off
    set verify off
    set und off
    set pagesize 100
    set linesize 200
    set markup html on
    preformat off
    entmap on
    spool on
    spool \...\...\test.xls

    ......... 4 select queries ..........

    set markup html off
    spool off

输出显示在 .xls 电子表格中垂直堆叠的 4 个 table 从 A1 开始向左对齐,但是我有没有办法让前 3 个垂直堆叠,第 4 个垂直堆叠table 在第 3 个/最低 table 的右侧,从单元格 T23 开始?

如果您想要格式化输出,您需要使用 UTL_FILE 包或 DBMS_OUTPUT 包 - 分别写入文件或 tty。 UTL_FILE 可能需要您的 DBA 添加到 ALL_DIRECTORIES 视图以便定义您的目录对象。换句话说,您不能只写入您想要的任何文件夹。

这些包使用类似于 C printf 语句的输出语法。 看: http://docs.oracle.com/cd/B19306_01/appdev.102/b14258/d_output.htm#BABJCAJA

做这样的事情

-- Query 1

SELECT *
  FROM TABLE1
  WHERE WHATEVER = SOMETHING_ELSE;

-- Query 2

SELECT *
  FROM TABLE2
  WHERE YADA_YADA = THIS_N_THAT;

-- Queries 3 and 4

SELECT NVL(q3.RNUM, q4.RNUM) AS RNUM, q3.COL1, Q3.COL2, Q3.COL3,
       ' ' AS SPACER,
       Q4.COL4, Q4.COL5, Q4.COL6
  FROM (SELECT ROWNUM AS RNUM, COL1, COL2, COL3,
               NULL AS COL4, NULL AS COL5, NULL AS COL6
          FROM TABLE3) q3
  FULL OUTER JOIN (SELECT ROWNUM AS RNUM, NULL AS COL1, NULL AS COL2, NULL AS COL3,
                          COL4, COL5, COL6
                     FROM TABLE4) q4
    ON q4.RNUM = q3.RNUM;

通过这种方式,您可以将查询 #4 中的数据放在查询 #3 行的右侧。

SQLFiddle here

将此视为 'partial' 答案。

我是 Oracle SQL 开发人员的产品经理,我们有一个新实用程序 SQLcl。

您可以将 SQLFORMAT 设置为 CSV 或 HTML。

任何结果集都会自动格式化为该格式,无需额外编码。

它仍处于测试阶段,因此处于部分状态。

Slidedeck and video here.