It appears to be a good idea to me: calling a stored proc once with the clob and make this one call the other proc dedicated to handle a single line could save some I/O between your applicative server and the DB one.
I have a very simple procedure to split a clob line by line:
create table test (c clob);
insert into test (c) values (
'azertyuiop
qsdfghjklm
wxcvbn
');
select to_char(regexp_substr(test.c, '.+', 1, level)) pattern
from test
connect by level <= regexp_count(test.c, '.+');
which gives, as expected:
PATTERN
1 azertyuiop
2 qsdfghjklm
3 wxcvbn
You can use this query in your 1st stored proc inside a for line in ()
to call your 2nd procedure line by line.