Does it autoextend or will it throw an error
It will throw and error. The main purpose of a database is to maintain data integrity, and data types are part of the rules and constraints the database will use to do this. VARCHAR is a short hand for "variable character", stating that you intend to store only
character data of a variable length no longer than the stated maximum in this field. You define the maximum amount of character data you can store with the maximum_size parameter (in your example 200). The maximum_size parameter denotes the maximum amount of data you cna store in characters or bytes. You can explicitly state which you want to use, e.g. :
If you don't specify which you are using, Oracle uses the value of the NLS_LENGTH_SEMANTICS parameter (which is CHAR by default I think).
Something to be aware of: the upper limit of a VARCHAR2 data type is fixed at a certain number of bytes. So changing the database character set can change the maximum number of characters you can store in a VARCHAR2 field, since characters set can use a one, two or many bytes to store a single character.
If you want a more flexible maximum limit - for example if you are persisting user input which could be one line or 50 pages - you can use a CLOB. In this case the limit is 4GB I think.