Oracle PL / SQL printing each letter of a string
Better to have Loop end limit For i in 1..v_length
This way you do not have to change the Loop
limit each time you run.
Create or replace procedure print_string( IN_string IN varchar2 )
AS
v_length number(10);
v_out varchar2(20);
Begin
v_length := length(IN_string);
for i in 1..v_length
Loop
v_out := substr(IN_string,i,1) ;
DBMS_OUTPUT.PUT_LINE(v_out);
End loop;
DBMS_OUTPUT.PUT_LINE('Text printed: ' || IN_string);
End;
-- Procedure created.
BEGIN
print_string('Hello');
END;
-- Output:
H
e
l
l
o
Text printed: Hello
Statement processed.
It can be done in a single select too:
SQL> select substr('hello', level, 1) Letter
2 from dual
3 connect by level <= length('hello');
L
-
h
e
l
l
o
SQL>