max_string_size

从12c开始,varchar2(实际包括nvarchar2和raw)开始支持32767个字节,即32K的容量。他是由max_string_size这个参数控制的,默认值是STANDARD,为了支持32K,需要将其改为EXTENDED。

[oracle@localhost ~]$ sqlplus / as sysdba

SQL*Plus: Release 19.0.0.0.0 - Production on Thu May 5 01:13:46 2022
Version 19.11.0.0.0

Copyright (c) 1982, 2020, Oracle.  All rights reserved.

SQL> show parameter max_str

NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
max_string_size                      string      STANDARD

SQL> create table test (id varchar2(5000));

Table created.

SQL> insert into test values(rpad('a',4200,'a'));

1 row created.

SQL> commit;

Commit complete.

SQL> select length(id) from test;

LENGTH(ID)
----------
      4000

我们可以看到,在max_string_size 为 STANDARD,创建表时,可以指定varchar2 类型超过 4000字节,但是当插入数据超过4000字节时,数据会被阶段

SQL> show parameter max_string

NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
max_string_size                      string      EXTENDED
SQL> insert into test values(rpad('a',4200,'a'));

1 row created.

SQL> commit;

Commit complete.


SQL> select length(id) from test;

LENGTH(ID)
----------
      4000
      4200

只有将max_string_size  改为EXTENDED (修改过程参考官方文档),才能插入超过 4000 字节的数据内容。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

huangliang0703

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值