所以我尝试像这样设置我的表格样式: 像这样的样式
但我的看起来像这样:我的
如何拉直行以使其与标题匹配?
这是我在"开始"中的代码:
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 格式。