在oracle 12c兼容12.0.0上,更改为使用sysdba权限扩展。
我现在可以创建一个以 varchar2(16000) 作为列的表,并插入一个 > 4000 字节的字符串;但仅当以 sysdba 身份连接时。
当作为普通用户而不是 sysdba 连接时,我无法使用 varchar2 >4000 字节,抛出错误 ORA-60019。谁能解释为什么?
当以非 sysdba 用户身份登录时,参数 max_string_size= Extended 和 Compatible=12.0.0。
请执行以下步骤,并让我知道问题是否已解决。我要求再次设置参数以确保
一切都秩序井然。
1)备份你的spfile(获取spfile的位置)
sqlplus / as sysdba
show parameter spfile;
2) 关闭数据库。
sqlplus / as sysdba
shutdown immediate
3)以UPGRADE模式重新启动数据库。
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
注意:utl32k.sql 脚本增加了最大大小
其所在视图的 VARCHAR2、NVARCHAR2 和 RAW 列
必需的。该脚本不会增加最大大小
由于方式原因,某些视图中的 VARCHAR2、NVARCHAR2 和 RAW 列
这些视图的 SQL 已编写。
rdbms/admin/utlrp.sql 脚本有助于重新编译无效对象。你
必须连接 AS SYSDBA 才能运行脚本。
6) 以NORMAL模式重新启动数据库。
sqlplus / as sysdba
shutdown immediate
startup;
show parameter MAX_STRING_SIZE;
7) 创建列数据类型为 varchar2、大小超过 4000 的新表。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)