在Oracle中生成报告?

时间:2010-09-06 16:16:26

标签: sql oracle

我正在尝试使用Oracle生成报告,但我遇到了一些对齐问题。有没有办法在特定列中打印值?我正在努力实现以下目标:

---------------------------------------------------------
ColA        ColB        ColC
-----     ---------   ---------
1            2           1
2            4           2
3            3           1

目前,我遇到了一些困难。我正在编写以下PL / SQL命令:

DECLARE

BEGIN
    DBMS_OUTPUT.PUT_LINE('-');
    DBMS_OUTPUT.PUT_LINE('----------------------------------------------------------------------------------------------------------------');
    DBMS_OUTPUT.PUT_LINE('ColA        ColB        ColC');
    DBMS_OUTPUT.PUT_LINE('-----------        ------------        -------');
    FOR record IN (SELECT * FROM TABLEA) LOOP
        DBMS_OUTPUT.PUT_LINE(record.ID || '        ' || record.TAG || '        ' || record.TIP);
    END LOOP;
END;
/

我手动放入八个空格,所以我的输出完全搞砸了。有没有更好的格式化输出的方法?

1 个答案:

答案 0 :(得分:1)

没关系..我认为它很好......以防万一其他人正在寻找答案,使用RPAD给了我想要的东西。例如,我可以使用以下内容很好地格式化它:

DECLARE

BEGIN
    DBMS_OUTPUT.PUT_LINE('-');
    DBMS_OUTPUT.PUT_LINE(RPAD('-', 50, '-');
    DBMS_OUTPUT.PUT_LINE(RPAD('ColA', 20) || RPAD('ColB', 20) || RPAD('ColC', 20));
    DBMS_OUTPUT.PUT_LINE('-----------        ------------        -------');
    FOR record IN (SELECT * FROM TABLEA) LOOP
        DBMS_OUTPUT.PUT_LINE(RPAD(record.ID, 20) || RPAD(record.TAG, 20) || RPAD(record.TIP, 20));
    END LOOP;
END;
/