Преобразование массива Varchar2 в Char в Oracle

У меня есть поле varchar2, и я хочу разделить его на массив символов. Например, «ABCDEF» -> «A», «B», «C», «D», «E». Как преобразовать значения поля в массив символов?


person MH2538    schedule 01.10.2013    source источник
comment
что-то вроде этого stackoverflow.com/ вопросы/14328621/ ?   -  person A.B.Cade    schedule 01.10.2013


Ответы (1)


Если вы на самом деле имеете в виду набор символов PL/SQL, вы можете сделать что-то вроде

SQL> ed
Wrote file afiedt.buf

  1  declare
  2    type char_arr is table of char(1) index by pls_integer;
  3    l_str varchar2(100) := 'ABCDEF';
  4    l_arr char_arr;
  5  begin
  6    for i in 1 .. length(l_str)
  7    loop
  8      l_arr(i) := substr( l_str, i, 1 );
  9    end loop;
 10    dbms_output.put_line( l_arr.count );
 11* end;
SQL> /
6

PL/SQL procedure successfully completed.

Однако, не понимая бизнес-требований, я был бы очень подозрительным. Когда вы обнаружите, что разбиваете строки в PL/SQL, это почти всегда означает, что вы сохранили данные в неатомарной форме и вам нужно решить проблему с моделью данных.

person Justin Cave    schedule 01.10.2013