mysql导数到oracle(表结构字段长度相同,ORA-12899: value too large for column (actual: 27, maximum: 20))

当从MySQL导数到Oracle时,遇到ORA-12899错误,原因是字段长度不匹配。尽管考虑了字符集差异,但问题根源在于varchar2类型的字节长度。解决办法是将Oracle中的varchar2字段类型改为nvarchar2,因为两者在处理字符长度上不同,nvarchar2按字符而非字节计数。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

分析步骤

mysql库与oracle库表结构字段长度等都一致,在两个库互相导数的过程中出现ORA-12899: value too large for column (actual: 27, maximum: 20),刚开始认为是oracle中UTF,一个中文字占三个字节,而GBK,一个中文字占两个字节,故尝试将oracle字符集改为GBK,而后发现依旧是这个问题,经过思考,mysqlvarchar类型一个中文字占1字节,oracle nvarchar2一个中文字也占一个字节,故最终将oracle中varchar2类型改为nvarchar2类型,问题解决

ORA-12162: TNS:net service name is incorrectly specified

[oracle@ ~]$ vi ~/.bash_profile
ORACLE_BASE=/data/oracle
ORACLE_HOME=$ORACLE_BASE/product/11.2.0/dbhome_1
ORACLE_SID=orcl
export ORACLE_SID ORACLE_BASE ORACLE_HOME

ORA-12547: TNS:lost contact错误解决方法

检查是否权限问题
$ cd $ORACLE_HOME/bin
$ ls -l oracle
输出的正确权限应该如下:
-rwsr-s--x 1 oracle d
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值