在与oracle 12c兼容的12.0.0上,已更改为具有sysdba特权的扩展。
我现在可以创建一个以varchar2(16000)作为列的表,并插入一个字符串> 4000字节;但仅当以sysdba身份连接时。
当以普通用户身份而不是sysdba连接时,我无法使用varchar2> 4000字节进行播放,并引发错误ORA-60019。谁能解释为什么?
以不是sysdba的用户身份登录时,参数max_string_size =扩展且兼容= 12.0.0。
最佳答案
请执行以下步骤,让我知道问题是否已解决。我要求再次设置参数只是为了确保
一切都秩序井然。
1)备份您的spfile(获取spfile的位置)
sqlplus / as sysdba
show parameter spfile;
2)关闭数据库。
sqlplus / as sysdba
shutdown immediate
3)以升级模式重新启动数据库。
startup upgrade
4)将MAX_STRING_SIZE的设置更改为EXTENDED。
alter system set MAX_STRING_SIZE ='EXTENDED' scope=spfile;
5)
sqlplus / as sysdba
@%ORACLE_HOME%\RDBMS\ADMIN\utl32k.sql
@%ORACLE_HOME%\RDBMS\ADMIN\utlrp.sql
6)在正常模式下重新启动数据库。
sqlplus / as sysdba
shutdown immediate
startup;
show parameter MAX_STRING_SIZE;
7)创建具有大于4000大小的列数据类型varchar2的新表。
关于扩展为支持varchar2> 4000字节的Oracle 12c对于非sysdba的用户不起作用,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/30878036/