The limit you hit is not on the LONG column, but on the String literal. The error message even says so. Oracle won't accept a string constant that long. The same error would happen even if you were stuffing such a long string literal to CLOB.
You should use binds (
PreparedStatement in
Java), that way you don't put the text of the string into the SQL statement. I'm not sure there isn't a limit on the maximum length of the bind variable, though.
Are you using Java/JDBC? I didn't find a section specifying how to write/update a LONG in
Oracle's JDBC Developer's Guide, only a section on
how to read them. If you're using Java, try to treat the LONG as you would treat CLOB. If that doesn't work, you could still write a stored procedure that would take a temporary CLOB and stored it as a LONG to the database (hopefully that would be possible in PL/SQL). I haven't personally ever used LONGs, as they are obsolete for such a long time.