如何将每个字符的名称拆分为oracle中的每一行

时间:2017-10-04 04:24:29

标签: sql oracle oracle12c

如果名称已经给出每个名称的字符应出现在每一行

名称就像:

ABC

我希望打印输出如下:

A
B
C

1 个答案:

答案 0 :(得分:0)

您可以使用chr(10)方法在每个字符后引入新行。

以下功能可以实现相同的目的:

create or replace function string_to_individual_char(str varchar2) return varchar2 is
   cnt number := 0;
   str_to_return varchar2(1000) := '';
begin
   for cnt in 1..length(str) loop
      str_to_return := str_to_return||substr(str,cnt,1);
      if cnt != length(str) then
         str_to_return := str_to_return||chr(10);
      end if;      
   end loop;
   return str_to_return;
end;
/

show errors;

样本用法:

set serveroutput on
SQL> select string_to_individual_char(ename) from scott.emp;

STRING_TO_INDIVIDUAL_CHAR(ENAME)
--------------------------------------------------------------------------------
S
M
I
T
H

A
L
L
E
N