In a procedure, a varchar2 can have a bit over 32000 characters.
As a database column, you can use either a CLOB (normally best), LONG (there's various restrictions on using LONGs and I don't know of any good reasons for using them), or multiple VARCHAR2 columns [eg if you know it will never be more than 8000 characters, you can use two varchar2(4000)].