我有一个在spool
中生成表格的程序:
create procedure.....
......
loop
...
dbms_output.put_line(p_taskno||' '||p_descrip||' '||p_hrs||' '||p_start_date);
.........
输出正确,但格式不正确:
***************************************
ABC Company Projects:
Project: 5555
TaskNo Description Hours StartDate
_____________________________________________
11 Prototype New Screens 30 23-AUG-06
12 Convert Data Files 10.5 15-SEP-06
13 Create Test Plan 15 14-AUG-06
62 Develop Enterprise Model 280 26-OCT-06
_____________________________________________
Number of Tasks: 4
Total Project Hours: 335.5
我无法使用column description format a20 word_wrapped
因为该表是dbms_output.put_line
的结果。我该如何格式化呢?
答案 0 :(得分:11)
您需要计算出列的最大大小,然后用空格填充输出。
所以你希望taskno
与其标题对齐,即六个字符。因为它是一个数字,你需要它在右边对齐:
lpad(to_char(taskno), 6)
而描述是一个字符串,所以你要在左边对齐
rpad(p_description, 30)
也可以在标题的元素上使用这些函数,以获得最佳输出。