Quantcast
Channel: Doyensys Allappsdba Blog..
Viewing all articles
Browse latest Browse all 1640

Article 0

$
0
0

MAX_STRING_SIZE Parameter In Oracle 12c

This parameter was introduced in Oracle 12c. MAX_STRING_SIZE controls the maximum size of string size in Oracle database.Either we can set it to STANDARD or.EXTENDED The default value is STANDARD

MAX_STRING_SIZE = STANDARD means the maximum size of strings is 4000 bytes for VARCHAR2 and NVARCHAR2

MAX_STRING_SIZE = EXTENDED means maximum size can be upto 32767 byte .

We can change the value of MAX_STRING_SIZE from STANDARD to EXTENDED. But not from EXTENDED to STANDARD.

With MAX_STRING_SIZE set to STANDARD , if we try to set the length of column more than 4000, then it will throw ORA-00910 error.

SQL> SHOW PARAMETER MAX_STRING_
 
NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
max_string_size                      string      STANDARD
SQL>

SQL> create table UNIVERSITY ( COLLEGE_NAME VARCHAR2(8000));
create table UNIVERSITY ( COLLEGE_NAME VARCHAR2(8000))
                                                *
ERROR at line 1:
ORA-00910: specified length too long for its datatype

STEPS for converting MAX_STRING_SIZE to EXTENDED:

1. Start database in upgrade mode:

SQL> SHUTDOWN IMMEDIATE;
Database closed.
Database dismounted.
ORACLE instance shut down.
 
SQL>STARTUP UPGRADE
 
ORACLE instance started.
 
Total System Global Area 1.4663E+10 bytes
Fixed Size 15697000 bytes
Variable Size 1.1878E+10 bytes
Database Buffers 2717908992 bytes
Redo Buffers 51404800 bytes
Database mounted.
Database opened.

2. Change the value to EXTENDED

SQL>  alter system set MAX_STRING_SIZE='EXTENDED' SCOPE=BOTH;
 
System altered.
 
SQL> show parameter MAX_STRING_SIZE
 
NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
max_string_size                      string      EXTENDED
 
 3.Run utl32k.sql script:

@?/rdbms/admin/utl32k.sql

 
SQL> @?/rdbms/admin/utl32k.sql
 
Session altered.
 
 
 
 
DOC>#######################################################################
DOC>#######################################################################
DOC>   The following statement will cause an "ORA-01722: invalid number"
DOC>   error if the database has not been opened for UPGRADE.
DOC>
DOC>   Perform a "SHUTDOWN ABORT"  and
DOC>   restart using UPGRADE.
DOC>#######################################################################
DOC>#######################################################################
DOC>#
 
no rows selected
 
DOC>#######################################################################
DOC>#######################################################################
DOC>   The following statement will cause an "ORA-01722: invalid number"
DOC>   error if the database does not have compatible >= 12.0.0
DOC>
DOC>   Set compatible >= 12.0.0 and retry.
DOC>#######################################################################
DOC>#######################################################################
DOC>#
 
PL/SQL procedure successfully completed.
 
 
Session altered.
 
 
1524 rows updated.
 
 
Commit complete.
 
 
System altered.
 
 
PL/SQL procedure successfully completed.
 
 
Commit complete.
 
 
System altered.
 
 
Session altered.
 
 
Session altered.
 
 
Table created.
 
 
Table created.
 
 
Table created.
 
 
Table truncated.
 
 
0 rows created.
 
 
PL/SQL procedure successfully completed.
 
no rows selected
 
DOC>#######################################################################
DOC>#######################################################################
DOC>   The following statement will cause an "ORA-01722: invalid number"
DOC>   error if we encountered an error while modifying a column to
DOC>   account for data type length change as a result of enabling or
DOC>   disabling 32k types.
DOC>
DOC>   Contact Oracle support for assistance.
DOC>#######################################################################
DOC>#######################################################################
DOC>#
 
PL/SQL procedure successfully completed.
 
 
PL/SQL procedure successfully completed.
 
 
Commit complete.
 

 4.Restart the database:
 shutdown immediate;
startup
 
 
SQL> show parameter max_string
 
NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
max_string_size                      string      EXTENDED
 
 Let’s create a table with length more than 4000.
 
  
SQL> create table UNIVERSITY ( COLLEGE_NAME VARCHAR2(8000));
 
Table created.

NOTE:- We don't have rollback option for this changes. 




Viewing all articles
Browse latest Browse all 1640

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>