Apart from the error you're receiving, there are a lot of wrong things in your procedure :
- cursor row-by-row processing : it doesn't scale
- commiting in a loop
- unnecessary conversion from xmltype to clob then to xmltype again : what's the point of doing that? consuming as much PGA memory as possible?
- extractvalue() and xmlsequence() functions should be replaced by xmltable()
From what I understand of the procedure, it could be simplified down to 4 INSERTs only, no cursor, no transient PL/SQL types, and even (maybe) to a single multitable INSERT.
I can show you how to do it, but I'd require a sample input XML to test.
BTW, please use