ORA-39083: Object type TABLE:"hp"."table1" failed to create with error:
ORA-00910: specified length too long for its datatype
复制
对比了源端和目标端,发现源端数据库的national character 为utf-8,而目标端的national character 为al16utf16。查了下资料发下如下说法:
The maximum column size allowed is 4000 characters when the national character set is UTF8 and 2000 when it is AL16UTF16.
复制
SQL> create table ruitest(a nvarchar2(4000)); create table ruitest(a nvarchar2(4000)) * ERROR at line 1: ORA-00910: specified length too long for its datatype
SQL> select value from nls_database_parameters where parameter ='NLS_NCHAR_CHARACTERSET'; VALUE ---------------------------------------- AL16UTF16
复制
2、修改参数
SQL> ALTER SYSTEM SET MAX_STRING_SIZE = EXTENDED SCOPE=SPFILE;
System altered.
SQL> shutdown immediate;
Database closed.
Database dismounted.
ORACLE instance shut down.
SQL> SQL>
SQL> startup upgrade;
ORACLE instance started.
Total System Global Area 1543500120 bytes
Fixed Size 8925528 bytes
Variable Size 889192448 bytes
Database Buffers 637534208 bytes
Redo Buffers 7847936 bytes
Database mounted.
Database opened.
SQL> @$ORACLE_HOME/rdbms/admin/utl32k;
Session altered.
Session altered.
DOC>#######################################################################
DOC>#######################################################################
DOC> The following statement will cause an "ORA-01722: invalid number"
DOC> error if the database has not been opened for UPGRADE.
DOC>
DOC> Perform a "SHUTDOWN ABORT" and
DOC> restart using UPGRADE.
DOC>#######################################################################
DOC>#######################################################################
DOC>#
no rows selected
DOC>#######################################################################
DOC>#######################################################################
DOC> The following statement will cause an "ORA-01722: invalid number"
DOC> error if the database does not have compatible >= 12.0.0
DOC>
DOC> Set compatible >= 12.0.0 and retry.
DOC>#######################################################################
DOC>#######################################################################
DOC>#
PL/SQL procedure successfully completed.
Session altered.
0 rows updated.
Commit complete.
System altered.
PL/SQL procedure successfully completed.
Commit complete.
System altered.
Session altered.
Session altered.
Table created.
Table created.
Table created.
Table truncated.
0 rows created.
Session altered.
PL/SQL procedure successfully completed.
STARTTIME
--------------------------------------------------------------------------------
07/10/2024 13:40:10.512464000
PL/SQL procedure successfully completed.
No errors.
Session altered.
Session altered.
Session altered.
0 rows created.
no rows selected
no rows selected
DOC>#######################################################################
DOC>#######################################################################
DOC> The following statement will cause an "ORA-01722: invalid number"
DOC> error if we encountered an error while modifying a column to
DOC> account for data type length change as a result of enabling or
DOC> disabling 32k types.
DOC>
DOC> Contact Oracle support for assistance.
DOC>#######################################################################
DOC>#######################################################################
DOC>#
PL/SQL procedure successfully completed.
PL/SQL procedure successfully completed.
Commit complete.
Package altered.
Session altered.
SQL> shutdown immediate;
Database closed.
Database dismounted.
ORACLE instance shut down.
SQL> SQL> startup
ORACLE instance started.
Total System Global Area 1543500120 bytes
Fixed Size 8925528 bytes
Variable Size 889192448 bytes
Database Buffers 637534208 bytes
Redo Buffers 7847936 bytes
Database mounted.
Database opened.
SQL> create table ruitest(a nvarchar2(4000));
Table created.
SQL> select value from nls_database_parameters where parameter ='NLS_NCHAR_CHARACTERSET';
VALUE
----------------------------------------
AL16UTF16
SQL>
复制

「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。
评论
相关阅读
Oracle 统计信息锁定解决办法
JiekeXu
447次阅读
2025-03-11 14:26:05
SQL解析失败跟踪案例分享(Oracle19c)
Rune_DB
319次阅读
2025-03-19 20:30:59
ORA-01555错误深度解析:从长事务到Undo优化的全面解决方案
伟鹏
242次阅读
2025-03-20 16:18:51
oracle定时任务常用攻略
virvle
202次阅读
2025-03-25 16:05:19
oracle 19c RAC增加控制文件镜像副本
敖子🍖
44次阅读
2025-03-04 12:27:10
oracle 补丁包
凉冰
28次阅读
2025-03-19 15:20:17
19c&21c单机/RAC手工清理标准化文档
Digital Observer
27次阅读
2025-03-27 11:04:42
升级到oracle 19.8后vm_concat函数不可用怎么解决
Digital Observer
24次阅读
2025-03-17 09:41:51
oracle 19c 测试库在使用中内存耗尽
Anti
22次阅读
2025-03-26 23:16:56
记一次oracle 19c RAC集群重启单节点DB启动异常(二)
Digital Observer
22次阅读
2025-03-12 09:36:28