【已解决】ORACLE 数据导入、连接等问题问题汇总

目录

问题一:ORA-31684: 对象类型 xxxx 已存在 table_exists_action xxxxx

问题二: 从源数据库expdp导出数据,然后往目标数据库impdp导入的时候报错

问题三   Oracle报错ORA-01653: 表xx无法通过 8192 (在表空间 xx_data 中) 扩展

 问题四:Oracle报错ORA-12516 TNS:listener could not find available handler with matching protocol stack

修改连接数的限制


 

 


问题一:ORA-31684: 对象类型 xxxx 已存在 table_exists_action xxxxx

解决方法:在impdb 导入时 加入参数   table_exists_action=replace      意思是如果表存在就替换。


问题二: 从源数据库expdp导出数据,然后往目标数据库impdp导入的时候报错

ORA-02374: conversion error loading table "xxxx"."xxxxxx"
ORA-128da99: value too large for column xxxxxxx (actual: 124, maximum: 100)

 分析:

    源数据库字符集: zhsgbk16

    目标端数据库字符集:al32utf8

    zhsgbk16 和 utf8 对数据编码之后,存储格式不同,对于中文来讲,gbk存放一个汉字占用2个字节,utf8存放一个汉字占用3个字节,这样就会导致,

     比方说:原先GBK字符编码的数据库中的某张表中,存放中文的字段:colum001的类型是varchar 长度为200 ,并且该字段的大多数行的现有数据长度基本上在180个字节,那么该表导入UTF8编码的数据库中时,该字段原先存储的大多数180个字节的汉字,就需要180*3/2=270个字节左右的字符长度才能正常存放;而此时在执行impdp导入操作的时候,表结构是不会改变的,也就是原先的字段定义colum001的长度还是保持着200,因此在导入的时候,就会报错,出现上述错误信息。

解决方法:

第一种:重新导出,导入

在源库执行导出操作之前,把qbjmes.project 字段改成超过103  。

然后再往目标库导入的时候,就不会报错了。

第二种:清空报错表的数据,修改相关字段的长度,然后重新导入只导入该表的数据。

truncate table V_PS_STAFFPOS_REPTO_PUB_MT;

alter table V_PS_STAFFPOS_REPTO_PUB_MT modify(POST_NAME VARCHAR2(60));

然后再重新导入

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

太阳花先生可爱多

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值