ORACLE 18c XE (18.0.0.0.0) - MAX_STRING_SIZE = EXTENDED (COL



我使用以下命令将MAX_STRING_SIZESTANDARD设置为EXTENDED

ALTER SYSTEM SET MAX_STRING_SIZE=EXTENDED SCOPE=spfile;

该查询以"0"结束;完成";。我用这个命令检查了一下:

SELECT * FROM v$parameter WHERE name = 'max_string_size';

这是多行格式的结果:

NAME                    max_string_size
VALUE                   EXTENDED
DISPLAY_VALUE           EXTENDED
DEFAULT_VALUE           STANDARD
ISDEFAULT               FALSE
ISSES_MODIFIABLE        FALSE
ISSYS_MODIFIABLE        IMMEDIATE
ISPDB_MODIFIABLE        TRUE
ISINSTANCE_MODIFIABLE   FALSE
ISMODIFIED              FALSE
ISADJUSTED              FALSE
ISDEPRECATED            FALSE
ISBASIC                 FALSE
DESCRIPTION             controls maximum size of VARCHAR2, NVARCHAR2, and RAW types in SQL

我想在CREATE TABLE中使用COLLATE BINARY_CI,我收到以下错误消息:

CREATE TABLE sample_db 
(
sample_column VARCHAR2(50) COLLATE BINARY_CI
)

ORA-4399:如果设置了参数MAX_STRING_SIZE=STANDARD,则无法指定排序规则

Oracle版本为:Oracle 18c XE(18.0.0.0.0(

它并不像ALTER…那么简单。。。;参见文档:

仅当数据库处于UPGRADE模式时使用ALTER SYSTEM,并运行utl32k.sql脚本,如本节所述

COMPATIBLE初始化参数必须设置为12.0.0.0或将MAX_STRING_SIZE设置为EXTENDED。

已解决。

问题是我试图修改CDBMAX_STRING_SIZE参数的值,而不是PDB

使用"XEPDB1"修改命令:

PURGE DBA_RECYCLEBIN;
ALTER PLUGGABLE DATABASE XEPDB1 CLOSE IMMEDIATE;
ALTER PLUGGABLE DATABASE XEPDB1 OPEN UPGRADE;
ALTER SESSION SET CONTAINER=XEPDB1;
ALTER SYSTEM SET MAX_STRING_SIZE=EXTENDED;
@?/rdbms/admin/utl32k.sql;
ALTER PLUGGABLE DATABASE XEPDB1 CLOSE;
ALTER PLUGGABLE DATABASE XEPDB1 OPEN;

您可以遵循oracle文档:https://docs.oracle.com/database/121/REFRN/GUID-D424D23B-0933-425F-BC69-9C0E6724693C.htm#REFRN10321在"增加PDB中VARCHAR2、NVARCHAR2和RAW列的最大大小"一节中。

使用sysdba用户运行的命令:

# list pdbs
show pdbs;
# alter session to a specific pdb
alter session set container = {pdb};
# restart pdb in upgrade mode
shutdown;
alter pluggable dabase {pdb} open upgrade;
# change max_string_size
alter system set max_string_size=extended;
# run oracle script
@${ORACLE_HOME}/admin/utl32k.sql;
# reopen as normal mode
shutdown;
alter pluggable database {pdb} open READ WRITE;
# recompile invalid objects
@${ORACLE_HOME}/rdbms/admin/utlrp.sql;

我曾经https://hub.docker.com/r/pvargacl/oracle-xe-18.4.0容器图像。该页面提供了连接到sysdba模式的指导原则。

最新更新