0
我已经写了一个存储过程来显示关于员工工资的屏幕细节,它工作的很好,但我想修复显示在屏幕上的信息。我尝试使用LPAD和RPAD函数来在屏幕上排列“列”,但它不起作用,或者我可能没有很好地使用它。你有什么主意吗?谢谢。显示Oracle PL/SQL - 如何格式化屏幕上显示的数据?
FOR j IN c_recibos (t_emp(i).numero, t_emp(i).legajo)
LOOP
DBMS_OUTPUT.PUT_LINE(
RPAD(j.concepto, 24, ' ') || ' ' ||
LPAD(j.cantidad, 10, ' ') || ' ' ||
RPAD(TO_CHAR(j.haberes, '0000.00'), 9, ' ') || ' ' ||
LPAD(TO_CHAR(j.retenciones, '0000.00'), 28, ' '));
END LOOP;
FOR k IN c_totales(t_emp(i).numero, t_emp(i).legajo)
LOOP
DBMS_OUTPUT.PUT_LINE(
'Totales: ' || k.total_haberes || ' ' ||
k.total_retenciones);
END LOOP;
DBMS_OUTPUT.PUT_LINE('------------');
END LOOP;
最新信息:
当我出口的信息复制到记事本,我想看到类似的东西:
看起来不错除了几个多余的空格'Cantidad'之前和'Retenciones'列中的数字。请记住,空值不会被填充,空格是默认的填充字符,所以你不需要''''。 (顺便说一句,是记事本或Excel?) –
对不起,这是为Excel,但还没有工作。有没有任何功能或什么来格式化输出?或者我应该继续尝试使用LPAD和RPAD功能? –
如果仅用于Excel,则可以使用分隔符(例如制表符或管道),而不是将列中的文本对齐。如果它必须对齐,那么'lpad'和'rpad'应该可以完成这项工作。您可能会将文本分配给char变量而不是正确填充,因为它涉及到相同的事情(对空值的注意事项相同)。 –