如何使用plsql块将字符串拆分为字符

如何使用plsql块将字符串拆分为字符,plsql,Plsql,我正在尝试将字符串拆分为字符,并希望在每行打印一个字符。我试图用上面的代码打印它们,但它不打印空格字符。如果有人有想法,请帮助我?此代码没有问题,可能是您没有将serveroutput设置为打开状态,请尝试此操作 申报 str varchar2(20):=‘我不知道’ 开始 对于1.长度(str)中的i 环路 dbms_output.put_行(substr(str,i,1)) 端环 结束 即使有空格 代码是相同的我打赌您在sqlplus中运行PL/SQL块,对吗dbms\u输出+sqlplus

我正在尝试将字符串拆分为字符,并希望在每行打印一个字符。我试图用上面的代码打印它们,但它不打印空格字符。如果有人有想法,请帮助我?

此代码没有问题,可能是您没有将serveroutput设置为打开状态,请尝试此操作

申报

str varchar2(20):=‘我不知道’

开始

对于1.长度(str)中的i

环路

dbms_output.put_行(substr(str,i,1))

端环

结束

即使有空格


代码是相同的

我打赌您在
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>