declare
str varchar2(20):='&your_string';
begin
for i in 1..length(str)
loop
dbms_output.put_line(substr(str,i,1));
end loop;
end;
/
我正在尝试将字符串拆分为字符,我想在每行中打印一个字符。我试图用上面的代码打印它们,但它不打印空格字符。如果有人有想法请帮助我?
答案 0 :(得分:4)
我打赌你在sqlplus
运行PL / SQL块,对吗? dbms_output
+ sqlplus
组合本身很棘手,当您与whitespace
混合时,您遇到了麻烦。我的建议是完全避免whitespace
敏感dbms_output
,最好是dbms_output
。
可以使用sqlplus settings获得所需的输出。请参阅以下示例:
空行神奇地消失了:
SQL> set serveroutput on
SQL> begin
dbms_output.put_line('1');
dbms_output.put_line(' ');
dbms_output.put_line('2');
end;
/
1
2
PL/SQL procedure successfully completed.
出现空行:
SQL> set serveroutput on size 100000 format wrapped
SQL> set trimspool on
SQL> begin
dbms_output.put_line('1');
dbms_output.put_line(' ');
dbms_output.put_line('2');
end;
/
1
2
PL/SQL procedure successfully completed.
SQL>
答案 1 :(得分:-1)
这段代码还可以,你可能没有把serveroutput放在试试这个
上声明
str varchar2(20):='i n dia';
开始
for i in 1..length(str)
环
DBMS_OUTPUT.PUT_LINE(SUBSTR(STR,I,1));
结束循环;
端;
即使有空格
代码相同