我正在尝试使用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;
/
我手动放入八个空格,所以我的输出完全搞砸了。有没有更好的格式化输出的方法?
答案 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;
/