如何使用plsql块将字符串拆分为字符
我正在尝试将字符串拆分为字符,并希望在每行打印一个字符。我试图用上面的代码打印它们,但它不打印空格字符。如果有人有想法,请帮助我?此代码没有问题,可能是您没有将serveroutput设置为打开状态,请尝试此操作 申报 str varchar2(20):=‘我不知道’ 开始 对于1.长度(str)中的i 环路 dbms_output.put_行(substr(str,i,1)) 端环 结束 即使有空格如何使用plsql块将字符串拆分为字符,plsql,Plsql,我正在尝试将字符串拆分为字符,并希望在每行打印一个字符。我试图用上面的代码打印它们,但它不打印空格字符。如果有人有想法,请帮助我?此代码没有问题,可能是您没有将serveroutput设置为打开状态,请尝试此操作 申报 str varchar2(20):=‘我不知道’ 开始 对于1.长度(str)中的i 环路 dbms_output.put_行(substr(str,i,1)) 端环 结束 即使有空格 代码是相同的我打赌您在sqlplus中运行PL/SQL块,对吗dbms\u输出+sqlplus
代码是相同的我打赌您在
sqlplus
中运行PL/SQL块,对吗dbms\u输出
+sqlplus
组合本身是一个棘手的问题,当您将其与空白
混合使用时,您会遇到麻烦。我的建议是避免空白
敏感的dbms\u输出
,最好是dbms\u输出
有可能得到你想要的输出。请参见下面的示例:
空行神奇地消失了:
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;
/
出现空行:
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.
您希望空格字符看起来像什么?替换为您自己的表示形式
dbms\u输出代码>当我替换任何其他字符来代替空格时,它是有效的,但是我的实际要求是我不想打印任何其他字符来代替空格。如果我能够ub=理解这个家伙没有得到带空格的o/p,代码就可以了。如果还有其他要求,请更正。我将服务器输出设置为打开状态,但它仍然没有。您希望这样的o/p i n d i a此代码对此没有问题
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>