On oracle 12c compatible 12.0.0, changed to extended with sysdba privileges. I can create a table with varchar2(16000) as column now and insert a string > 4000 bytes; but only when connected as sysdba. When connected as a normal user rather than sysdba, I cannot play with varchar2 >4000 bytes, an error ORA-60019 is thrown. Can anyone explain why? the param max_string_size= extended and compatible=12.0.0 when logged in as a user who is not a sysdba.
Oracle 12c extended to support varchar2 > 4000 bytes doesn't work for user who is not sysdba
2.7k Views Asked by Shadab Khan AtThere are 2 best solutions below
On
You must change your file "TNSNAMES.ORA" to connect by PDB. I was with the same problem. I have solved with the information of link bellow.
The reason for that behaviour is that you are in a multi-tenant environment, i.e. a master container called the CDB ("Container Database"), and any number of PDBs ("Pluggable Databases").
The CDB ("container") is a kind of "system" database that is there to contain the actual customer databases ("pluggable databases" or PDBs). The CDB is not intended to receive any customer data whatsoever. Everything goes into one or more PDBs.
When you connect without specifying any service, you are automatically placed in the CDB. The extended strings parameter is ignored for the CDB: the limit remains 4000 bytes. The following connects to the CDB. Creating a table with a long string is rejected, just like in your case:
Do following steps and let me know if the issue is resolved. I am asking to set the parameter again just to make sure everything is in order.
1) Back up your spfile ( get location of spfile)
2) Shut down the database.
3) Restart the database in UPGRADE mode.
4) Change the setting of MAX_STRING_SIZE to EXTENDED.
5)
6) Restart the database in NORMAL mode.
7) create new table with column datatype varchar2 having more than 4000 size.