我使用以下命令将MAX_STRING_SIZE从标准设置为EXTENDED:
ALTER SYSTEM SET MAX_STRING_SIZE=EXTENDED SCOPE=spfile;此查询以“已完成”完成。我用以下命令检查了它:
SELECT * FROM v$parameter WHERE name = 'max_string_size';这里的..and是多行格式的结果:
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,我有以下错误消息:
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)
发布于 2020-12-25 10:28:53
解决了。
问题是我试图修改MAX_STRING_SIZE参数在CDB中的值,而不是PDB。
使用“XEPDB1 1”修改命令:
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;发布于 2020-12-17 19:20:35
它不像ALTER那样简单.;参见文档
仅在数据库处于升级模式时才使用ALTER,然后运行utl32k.sql脚本,如本节所述。 ..。兼容的初始化参数必须设置为12.0.0.0或更高才能设置MAX_STRING_SIZE = EXTENDED。
发布于 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用户一起运行:
# 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模式的指南。
https://stackoverflow.com/questions/65331126
复制相似问题