如何将PL/SQL中的输出格式化为直列?
我想知道如何才能将以下代码的输出显示在一个整洁的列中。现在的输出组织得不整齐。我需要在变量前面加上什么吗如何将PL/SQL中的输出格式化为直列?,sql,oracle,plsql,Sql,Oracle,Plsql,我想知道如何才能将以下代码的输出显示在一个整洁的列中。现在的输出组织得不整齐。我需要在变量前面加上什么吗 DBMS_OUTPUT.PUT_LINE('Employee Name: ' || (v_name)); DBMS_OUTPUT.PUT_LINE('Job: ' || (v_job)); DBMS_OUTPUT.PUT_LINE('Total Pay: ' || TO_CHAR(v_pay, '$999G999G999D99')); 您只输出一个字符串,因此没有机会整齐地对齐值,因为它们
DBMS_OUTPUT.PUT_LINE('Employee Name: ' || (v_name));
DBMS_OUTPUT.PUT_LINE('Job: ' || (v_job));
DBMS_OUTPUT.PUT_LINE('Total Pay: ' || TO_CHAR(v_pay, '$999G999G999D99'));
您只输出一个字符串,因此没有机会整齐地对齐值,因为它们可以在简单的select中对齐。连接(
|
)只是将给定的内容准确地粘在一起
您只需手动填充字符串:
DBMS_OUTPUT.PUT_LINE('Employee Name: ' || (v_name));
DBMS_OUTPUT.PUT_LINE('Job: ' || (v_job));
DBMS_OUTPUT.PUT_LINE('Total Pay: ' || TRIM(TO_CHAR(v_pay, '$999G999G999D99')));
数字列的to_char
使其左填充(右对齐)到格式掩码的宽度:
SQL> select TO_CHAR(4.97,'$999G999G999D99') from dual;
TO_CHAR(4.97,'$9
----------------
$4.97
。。。因此,在这种情况下,您需要对其进行修剪,以便它只使用您自己的填充
DECLARE
v_name varchar2(30) := 'Joe Bloggs';
v_job varchar2(20) := 'Contractor';
v_pay number := 52657.3;
BEGIN
DBMS_OUTPUT.PUT_LINE('Employee Name: ' || v_name);
DBMS_OUTPUT.PUT_LINE('Job: ' || v_job);
DBMS_OUTPUT.PUT_LINE('Total Pay: '
|| TRIM(TO_CHAR(v_pay, '$999G999G999D99')));
END;
/
Employee Name: Joe Bloggs
Job: Contractor
Total Pay: $52,657.30
PL/SQL procedure successfully completed.
您只输出一个字符串,因此没有机会整齐地对齐值,因为它们可以在简单的select中对齐。连接(|
)只是将给定的内容准确地粘在一起
您只需手动填充字符串:
DBMS_OUTPUT.PUT_LINE('Employee Name: ' || (v_name));
DBMS_OUTPUT.PUT_LINE('Job: ' || (v_job));
DBMS_OUTPUT.PUT_LINE('Total Pay: ' || TRIM(TO_CHAR(v_pay, '$999G999G999D99')));
数字列的to_char
使其左填充(右对齐)到格式掩码的宽度:
SQL> select TO_CHAR(4.97,'$999G999G999D99') from dual;
TO_CHAR(4.97,'$9
----------------
$4.97
。。。因此,在这种情况下,您需要对其进行修剪,以便它只使用您自己的填充
DECLARE
v_name varchar2(30) := 'Joe Bloggs';
v_job varchar2(20) := 'Contractor';
v_pay number := 52657.3;
BEGIN
DBMS_OUTPUT.PUT_LINE('Employee Name: ' || v_name);
DBMS_OUTPUT.PUT_LINE('Job: ' || v_job);
DBMS_OUTPUT.PUT_LINE('Total Pay: '
|| TRIM(TO_CHAR(v_pay, '$999G999G999D99')));
END;
/
Employee Name: Joe Bloggs
Job: Contractor
Total Pay: $52,657.30
PL/SQL procedure successfully completed.
显示为列-这是一种简单的方法。您可以为此使用Rpad()、Lpad(),我想这会更高级:
DECLARE
v_name varchar2(30) := 'Joe Bloggs';
v_job varchar2(20) := 'Contractor';
v_pay number := 52657.3;
BEGIN
DBMS_OUTPUT.PUT_LINE('Employee Name'||chr(9)||chr(9)||chr(9)||'Job'||chr(9)||chr(9)||chr(9)||chr(9)||chr(9)||'Total Pay');
DBMS_OUTPUT.PUT_LINE('--------------------------------------------------------');
DBMS_OUTPUT.PUT_LINE(v_name||chr(9)||chr(9)||chr(9)||chr(9)||chr(9)||v_job||chr(9)||chr(9)||TRIM(TO_CHAR(v_pay, '$999G999G999D99')));
END;
/
Employee Name Job Total Pay
--------------------------------------------------------
Joe Bloggs Contractor $52,657.30
显示为列-这是一种简单的方法。您可以为此使用Rpad()、Lpad(),我想这会更高级:
DECLARE
v_name varchar2(30) := 'Joe Bloggs';
v_job varchar2(20) := 'Contractor';
v_pay number := 52657.3;
BEGIN
DBMS_OUTPUT.PUT_LINE('Employee Name'||chr(9)||chr(9)||chr(9)||'Job'||chr(9)||chr(9)||chr(9)||chr(9)||chr(9)||'Total Pay');
DBMS_OUTPUT.PUT_LINE('--------------------------------------------------------');
DBMS_OUTPUT.PUT_LINE(v_name||chr(9)||chr(9)||chr(9)||chr(9)||chr(9)||v_job||chr(9)||chr(9)||TRIM(TO_CHAR(v_pay, '$999G999G999D99')));
END;
/
Employee Name Job Total Pay
--------------------------------------------------------
Joe Bloggs Contractor $52,657.30
不重复但相关:不重复但相关: