Which one would be the better practice in terms of performance? Put big text data in a single CLOB column, or create a table, break the text from user input into multiple rows of 2000 lengths of varchar2, then querying it by concatenating it through PL/SQL function? I will take input from Oracle APEX environment.
What should drive your decision is not primarily performance but rather a sound data model. What are you storing in that field? A large unstructured glob of non-programmatic text with no clear elements or divisions (like an email body, or customer service notes, etc..)? If so, CLOB is appropriate. You will likely write once and never (or very rarely) update, and probably very rarely read. While working with LOB datatypes is quite slow in comparison with normal datatypes, the choice of these datatypes assumes you won't need to access or change the contents very often, so it's a moot point.
If however the text you have in mind is programmatically meaningful and contains pieces of data that you'll need, then you should break it out into a properly modelled set of tables and attributes and not use any large text field. Avoid storing pieces of programmatically usable data inside a single field, no matter what the datatype.
Trying to imitate CLOBs by using a set of varchar2(2000/4000) rows is not a good idea, unless your text is naturally lined (like lines from a log file, in which case one variable-width row per line is actually a good idea). But arbitrarily splitting content up by size (datatype limit) will create a nightmare for coding.