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

时间:2015-05-26 20:28:40

标签: oracle sqlplus

所以我的设置为:

    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个表格,从A1开始向左对齐,但有一种方法让我只有前3个垂直堆叠,第4个表格位于第3个右边/最低表将从单元格T23开始?

3 个答案:

答案 0 :(得分:1)

如果要格式化输出,则需要使用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

答案 1 :(得分:1)

做这样的事情

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

答案 2 :(得分:0)

考虑这个'部分'答案。

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

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

任何结果集都会自动格式化,不需要额外的编码。

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

Slidedeck and video here.