【问题标题】:How to add new line character in DBMS_OUTPUT.put_line in LINUX如何在 LINUX 的 DBMS_OUTPUT.put_line 中添加换行符
【发布时间】:2021-02-02 14:18:06
【问题描述】:

在 UNIX 中,在 SQL 脚本中,我有以下代码:

LOOP    
  DBMS_OUTPUT.put_line (p_key||'|'||p_loc||'\n');    
END LOOP

输出是:

5482004|Dir/3-30-2017/file:47923.xml

5482009|Dir/3-30-2017/file:49288.xml

但是在 Linux 中,由于 "\n" 不起作用,我将上面的代码替换为以下代码:

LOOP    
  DBMS_OUTPUT.put_line (p_key||'|'||p_loc);    
  DBMS_OUTPUT.new_line;    
END LOOP

输出是:

20 5482004|Dir/3-30-2017/file:447923.xml 5482009|Dir/3-30-2017/file:449288.xml 5482010|Dir/3-30-2017/file:449739.xml 5482012|Dir/3-30-2017/file:45015.xml

这种格式的输出在每行之后没有新行。请提出循环中正确的内容。

附:我也试过DBMS_OUTPUT.put_line (p_key||'|'||p_loc||chr(10)),但输出仍然没有新行。

【问题讨论】:

标签: sql linux oracle unix plsql


【解决方案1】:

请参考下面这个问题的答案。

New Line Character in dbms_output

【讨论】:

  • 我确实使用了 DBMS_OUTPUT.put_line (p_key||'|'||p_loc||chr(10));但输出仍然是 5482004|Dir/3-30-2017/file:447923.xml 5482009|Dir/3-30-2017/file:449288.xml 5482010|Dir/3-30-2017/file:449739.xml 5482012|Dir/3-30-2017/file:45015.xml 格式且不在新的第一行
  • LOOP DBMS_OUTPUT.put_line (p_key||'|'||p_loc); DBMS_OUTPUT.put_line(chr(10));结束循环
  • 我尝试了同样的方法,但对输出格式没有任何影响
【解决方案2】:

您可以使用 chr(10) 我试图交换数字的代码,我需要换行,所以我使用了 chr(10)

DECLARE 
    A NUMBER;
    B NUMBER;
    TEMP NUMBER;
BEGIN
    A:=&A;
    B:=&B;
    DBMS_OUTPUT.PUT_LINE(chr(10)||'BEFORE SWAP A is : '||A||' AND B is : '||B);
    TEMP:=B;
    B:=A;
    A:=TEMP;
    DBMS_OUTPUT.PUT_LINE(' AFTER  SWAP A is : '||A||' AND B is : '||B);
END;
/
Output:

Enter value for a: 1
old   6:   A:=&A;
new   6:   A:=1;
Enter value for b: 2
old   7:   B:=&B;
new   7:   B:=2;
                                 -- here i got new line
BEFORE SWAP A is : 1 AND B is : 2
AFTER  SWAP A is : 2 AND B is : 1

PL/SQL procedure successfully completed.

所以在输出之前(即在交换 A 之前是:1 和 B 是:2)之前,我得到了新的一行。

【讨论】:

    猜你喜欢
    • 2023-03-20
    • 1970-01-01
    • 2016-06-01
    • 2012-05-13
    • 2012-05-07
    • 1970-01-01
    • 2016-08-05
    • 1970-01-01
    相关资源
    最近更新 更多