oracle varchar 32k,12C改varchar2为32K

12C的改varchar2为32K

我们知道12C中的varchar2类型最大可以支持到 32K,但是default是不支持的,由参数MAX_STRING_SIZE来

进行控制,default的值为standard。如果要支持到32K,需要更改为extended.

SQL> create table t1 (a varchar2(32767));

create table t1 (a varchar2(32767))

*

ERROR at line 1:

ORA-00910: specified length too long for its datatype

对于non-cdb,过程如下:

SQL> alter system set max_string_size=extended scope=spfile;

System altered.

SQL> shutdown immediate;

SQL> startup upgrade;

SQL> @?/rdbms/admin/utl32k.sql;

执行完成后,重启DB生效

对于cdb模式下,在执行完后不能重启到正常模式,否则会报如下错

误.这是因为PDB$SEED的该参数要和CDB参数一致,所以PDB$SEED也要

升级一次

ORA-01092: ORACLE instance terminated. Disconnection forced

ORA-14696: MAX_STRING_SIZE migration is incomplete for pluggable database

PDB$SEED

Process ID: 16370

Session ID: 240 Serial number: 11

在以upgrade模式执行完utl32k.sql后,关闭instance,然后再mount instance.

SQL> startup mount;

SQL>alter database open migrate;

Database altered.

SQL> alter session set container=PDB$SEED;

Session altered.

SQL> alter system set max_string_size=extended;

System altered.

SQL> @?/rdbms/admin/utl32k.sql;

Session altered.

再次重启instance。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值