Sql 在Oracle中生成报告?
我正在尝试使用Oracle生成报告,但遇到一些对齐问题。是否有方法在特定列中打印值?我正在努力实现以下目标:Sql 在Oracle中生成报告?,sql,oracle,Sql,Oracle,我正在尝试使用Oracle生成报告,但遇到一些对齐问题。是否有方法在特定列中打印值?我正在努力实现以下目标: --------------------------------------------------------- ColA ColB ColC ----- --------- --------- 1 2 1 2 4 2 3 3
---------------------------------------------------------
ColA ColB ColC
----- --------- ---------
1 2 1
2 4 2
3 3 1
DECLARE
BEGIN
DBMS_OUTPUT.PUT_LINE('-');
DBMS_OUTPUT.PUT_LINE(RPAD('-', 50, '-');
DBMS_OUTPUT.PUT_LINE(RPAD('ColA', 20) || RPAD('ColB', 20) || RPAD('ColC', 20));
DBMS_OUTPUT.PUT_LINE('----------- ------------ -------');
FOR record IN (SELECT * FROM TABLEA) LOOP
DBMS_OUTPUT.PUT_LINE(RPAD(record.ID, 20) || RPAD(record.TAG, 20) || RPAD(record.TIP, 20));
END LOOP;
END;
/
目前,我有一些困难。我正在编写以下PL/SQL命令:
DECLARE
BEGIN
DBMS_OUTPUT.PUT_LINE('-');
DBMS_OUTPUT.PUT_LINE('----------------------------------------------------------------------------------------------------------------');
DBMS_OUTPUT.PUT_LINE('ColA ColB ColC');
DBMS_OUTPUT.PUT_LINE('----------- ------------ -------');
FOR record IN (SELECT * FROM TABLEA) LOOP
DBMS_OUTPUT.PUT_LINE(record.ID || ' ' || record.TAG || ' ' || record.TIP);
END LOOP;
END;
/
我手动输入了8个空格,所以我的输出被完全弄乱了。有没有更好的方式格式化输出?没关系。。我想它是在兜售。。。以防其他人正在寻找答案,使用RPAD可以满足我的需求。例如,我可以使用以下方法很好地格式化它:
---------------------------------------------------------
ColA ColB ColC
----- --------- ---------
1 2 1
2 4 2
3 3 1
DECLARE
BEGIN
DBMS_OUTPUT.PUT_LINE('-');
DBMS_OUTPUT.PUT_LINE(RPAD('-', 50, '-');
DBMS_OUTPUT.PUT_LINE(RPAD('ColA', 20) || RPAD('ColB', 20) || RPAD('ColC', 20));
DBMS_OUTPUT.PUT_LINE('----------- ------------ -------');
FOR record IN (SELECT * FROM TABLEA) LOOP
DBMS_OUTPUT.PUT_LINE(RPAD(record.ID, 20) || RPAD(record.TAG, 20) || RPAD(record.TIP, 20));
END LOOP;
END;
/
您也可以使用
rpad('-',50'-')
作为您的行。有时声明一个varchar变量,用文本字符串填充它,然后只执行dbms\u输出代码>@现在就到这里来:+1:)我会记住的。非常感谢。