首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Oracle18c XE (18.0.0.0.0) - MAX_STRING_SIZE = EXTENDED (排序BINARY_CI)问题

Oracle18c XE (18.0.0.0.0) - MAX_STRING_SIZE = EXTENDED (排序BINARY_CI)问题
EN

Stack Overflow用户
提问于 2020-12-16 21:08:42
回答 3查看 1.6K关注 0票数 2

我使用以下命令将MAX_STRING_SIZE标准设置为EXTENDED

代码语言:javascript
复制
ALTER SYSTEM SET MAX_STRING_SIZE=EXTENDED SCOPE=spfile;

此查询以“已完成”完成。我用以下命令检查了它:

代码语言:javascript
复制
SELECT * FROM v$parameter WHERE name = 'max_string_size';

这里的..and是多行格式的结果:

代码语言:javascript
复制
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中使用BINARY_CI,我有以下错误消息:

代码语言:javascript
复制
CREATE TABLE sample_db 
  (
       sample_column VARCHAR2(50) COLLATE BINARY_CI
  )

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

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

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2020-12-25 10:28:53

解决了。

问题是我试图修改MAX_STRING_SIZE参数在CDB中的值,而不是PDB

使用“XEPDB1 1”修改命令:

代码语言:javascript
复制
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;
票数 0
EN

Stack Overflow用户

发布于 2020-12-17 19:20:35

它不像ALTER那样简单.;参见文档

仅在数据库处于升级模式时才使用ALTER,然后运行utl32k.sql脚本,如本节所述。 ..。兼容的初始化参数必须设置为12.0.0.0或更高才能设置MAX_STRING_SIZE = EXTENDED。

票数 0
EN

Stack Overflow用户

发布于 2021-06-04 14:44:15

您可以在“增加https://docs.oracle.com/database/121/REFRN/GUID-D424D23B-0933-425F-BC69-9C0E6724693C.htm#REFRN10321中的VARCHAR2、NVARCHAR2和原始列的最大大小”部分跟踪oracle文档:VARCHAR2。

命令与sysdba用户一起运行:

代码语言:javascript
复制
# 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模式的指南。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/65331126

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档