暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

racle 12C 扩展varchar2、nvarchar2、和raw数据类型的大小限制

原创 wzf0072 2023-02-03
370

raw 长度 oracle,Oracle 12C -- 扩展varchar2、nvarchar2、和raw数据类型的大小限制


在12C中,varchar2,nvarchar2和raw类型从之前的4K扩展到32K

升级到12C后,参数max_string_size默认值是standard,即不改变varchar2、nvarchar2、和raw数据类型的大小限制,和11g保持一致。

SQL> show parameter max_string_size

NAME TYPE VALUE

------------------------------------ ----------- ------------------------------

max_string_size string STANDARD

SQL>

开启"扩展数据类型"功能:

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

alter system set max_string_size=extended scope=both

*

ERROR at line :

ORA-: parameter cannot be modified because specified value is invalid

ORA-: database must in UPGRADE mode to begin MAX_STRING_SIZE migration

SQL>

--设置该参数需要将数据以upgrade模式启动

SQL> shutdown immediate

Database closed.

Database dismounted.

ORACLE instance shut down.

SQL> startup upgrade;

ORACLE instance started.

Total System Global Area bytes

Fixed Size bytes

Variable Size bytes

Database Buffers bytes

Redo Buffers bytes

Database mounted.

Database opened.

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

System altered.

SQL> @$ORACLE_HOME/rdbms/admin/utl32k.sql

修改以后要执行以下脚本,升级后可能会有部分对象变得无效,需要重新编译下一无效对象

SQL> @$ORACLE_HOME/rdbms/admin/utlrp.sql

升级以后,如果varchar2,nvarchar2和raw的大小超过4k,oracle内部会以LOBs的方式存储(oracle内部自己维护,不建议用户直接操作)。

然后再重启数据库!

可以做个测试:

SQL> create table v32k_t (id int,name varchar2());

SQL> insert into v32k_t values(,rpad(,,'x'));

SQL> select * from v32k_t;

该新特性会产生以下一些影响:

(1)The creation and use of indexes is impacted (as covered in the next section in more detail).

用户可能会无法正确的创建、使用索引,或者无法插入和更新操作。

这主要受oracle的B树索引的长度限制,而B树索引的长度又受数据库块大小限制。8k大小的块所支持的索引的最大长度是6400字节。

建议可以使用substr创建函数索引,或创建hash索引;使用substr创建虚拟列,然后在虚拟列上创建索引。

(2)The limit of the combined length of concatenated character strings is increased.

(3)The length of the collation key returned by the NLSSORT function is increased.

(4)The size of some of the attributes of the XMLFormat objects is increased.

(5)The size of some expressions in some XML functions is adjusted.

Oracle 12C 新特性之扩展数据类型(extended data type)

Oracle 12C 新特性-扩展数据类型,在12c中,与早期版本相比,诸如VARCHAR2, NAVARCHAR2以及 RAW这些数据类型的大小会从4K以及2K字节扩展至32K字节.只要可能,扩展字 ...

oracle中RAW数据类型

近日在研究v$latch视图时,发现一个从未见过的数据类型.v$latch 中ADDR属性的数据类型为RAW(4|8)  同时也发现v$process中的ADDR属性的数据类型也为RAW(4|8).于 ...

Oracle nvchar2和varchar2区别分析

Oracle nvchar2和varchar2区别分析: [注意]VARCHAR2是Oracle提供的特定数据类型,Oracle可以保证VARCHAR2在任何版本中该数据类型都可以向上和向下兼容.VA ...

Oracle varchar与varchar2的区别

varchar -- 存放定長的字符数据,最长2000個字符:varchar2 -- 存放可变长字符数据,最大长度为4000字符. varchar2是oracle提供的独特的数据类型oracle保证在 ...

Oracle 12c新特性

转载自:Oracle 12c新特性(For DBA) 一: Multitenant Architecture (12.1.0.1)      多租户架构是Oracle 12c(12.1)的新增重磅特性 ...

Oracle 12c Windows安装、介绍及简单使用(图文)

1.下载 地址为:http://www.oracle.com/technetwork/cn/database/enterprise-edition/downloads/index.html 含企业版和 ...

Oracle 12c新特性(For DBA)

一: Multitenant Architecture (12.1.0.1)      多租户架构是Oracle 12c(12.1)的新增重磅特性,内建的多分租(Multi-tenancy),一个容器 ...

(转)Oracle 12c Windows安装、介绍及简单使用(图文)

版权声明:http://blog.csdn.net/anxpp https://blog.csdn.net/anxpp/article/details/51345074 转载请注明出处:http:// ...

raw数据类型

Oracle中用于保存位串的数据类型是RAW,LONG RAW(推荐使用BLOB). RAW,类似于CHAR,声明方式RAW(L),L为长度,以字节为单位,作为数据库列最大2000,作为变量最大327 ...


「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论