Oracle SQL 过程标头布局



所以我尝试像这样设置我的表格样式: 像这样的样式

但我的看起来像这样:我的

如何拉直行以使其与标题匹配?

这是我在"开始"中的代码:

BEGIN
OPEN e_cursor2;
dbms_output.put_line('' || chr(10));
DBMS_OUTPUT.PUT_LINE('ORDER LINE DETAILS: ');
DBMS_OUTPUT.PUT_LINE('Line#   ' || 'Make          ' || 'Model           ' || 'Year    ' || 'QTY    ' || 'Item Price     ' || 'SUBTOTAL');
DBMS_OUTPUT.PUT_LINE('-----  ' || ' ----        ' || '  -----  ' || '         ----  ' || '  ---  ' || '  ----------  ' || '   --------  ');
dbms_output.put_line('' || chr(10));
LOOP
FETCH e_cursor2 INTO e_row2;
EXIT WHEN e_cursor2%NOTFOUND;
DBMS_OUTPUT.PUT_LINE(e_cursor2%rowcount || '       ' || chr(32) || e_row2.i_make || '        ' ||e_row2.i_model || '         ' || 
                                          e_row2.i_year || '        ' || e_row2.ol_qty || '       ' ||e_row2.i_price || '        ' ||e_row2.i_price);
END LOOP;

任何帮助将不胜感激! 谢谢:)

到目前为止

,我倾向于同意另一个答案,即在SQL*Plus中使用HTML格式,但既然你在问,我会说如何按照你问的方式去做。 您需要固定每列的大小,并用 lpad 或 rpad 填充。 像这样的东西会做你需要的:

BEGIN
OPEN e_cursor2;
dbms_output.put_line('' || chr(10));
DBMS_OUTPUT.PUT_LINE('ORDER LINE DETAILS: ');
DBMS_OUTPUT.PUT_LINE(rpad('Line#',8) || rpad('Make',8) || rpad('Model',14) || rpad('Year',7) || rpad('QTY',8) || rpad('Item Price',14) || rpad('SUBTOTAL',10));
DBMS_OUTPUT.PUT_LINE(rpad('-----',8) || rpad('----',8) || rpad('-----',14) || rpad('    ',7) || rpad('---',8) || rpad('----------',14) || rpad('--------',10));
dbms_output.put_line('' || chr(10));
LOOP
FETCH e_cursor2 INTO e_row2;
EXIT WHEN e_cursor2%NOTFOUND;
DBMS_OUTPUT.PUT_LINE(rpad(e_cursor2%rowcount,8) ||
                     rpad(e_row2.i_make,8)      ||
                     rpad(e_row2.i_model,14)    ||
                     rpad(e_row2.i_year,7)      ||
                     rpad(e_row2.ol_qty,8)      ||
                     rpad(e_row2.i_price,14)    ||
                     rpad(e_row2.i_price,10)     );
END LOOP;

即使我可能犯了一些错误,你也能理解这个想法。 我继续填充每个标题行元素,以便所有内容都对齐。 以这种方式正确完成所有内容需要很长时间,但是当它们组合在一起时,这很有趣。

您正在做固定长度的格式化,您当然可以使用字符串函数(例如 lpad(to_char(数字列(...

就个人而言,我不会为此选择 PL/SQL,而是使用 SQL*Plus 中的 HTML 格式。

最新更新