在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
此格式的输出在每行之后没有新行。请在循环中建议正确的内容。
P.S。我也尝试了DBMS_OUTPUT.put_line (p_key||'|'||p_loc||chr(10))
,但输出仍然没有换行。
答案 0 :(得分:1)
请参阅下面这个问题的答案。
答案 1 :(得分:0)
您可以使用 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 AND B 是:2)我得到了新行。