Win11 Docker运行Oracle11g之数据导入(二)

目录

一、dmp数据导入

二、数据库字符编码修改

三、注意事项

四、参考资料


一、dmp数据导入

        上文说道imp工具导入:

imp scott/oraclen@helowin file="/home/oracle/app/db/db/xxx_head.dmp" log=importlog.log full=y ignore=y

又报错:vlue too large for column "SCOTT"."xxx_HEAD"."xxx_NAME"(actual:21,maximum:14)

        报错提示:Oracle ORA-12899

        解决方法:修改该字段所占字符空间后再重新导入正常,如下图所示。

alter table "SCOTT"."xxx_HEAD" modify  "xxx_NAME"  varchar2(25);

二、数据库字符编码修改

        提示告知字符编码不一致,还需要调整字符编码。

        输入如下命令调整:

#命令行输入命令连接容器操作系统
docker exec -it oracle11g bash
#连接数据库
sqlplus /nolog
SQL> conn /as sysdba
#查看当前数据库编码
SQL> SELECT * FROM nls_database_parameters WHERE parameter='NLS_CHARACTERSET';
#关闭数据库
SQL> shutdown immediate;
# mount数据库
SQL> startup mount;
#启用受限会话模式。要在数据库处于open模式下执行维护操作,同时保证此时其他用户不在数据库上建立连接和执行任务。
SQL> ALTER SYSTEM ENABLE RESTRICTED SESSION;
#不让Oracle数据库进行并发作业,修改数据库并发执行作业时使用的进程数量为0
SQL> ALTER SYSTEM SET JOB_QUEUE_PROCESSES=0;
SQL> ALTER SYSTEM SET AQ_TM_PROCESSES=0;
#打开数据库
SQL> ALTER DATABASE OPEN;
#修改Oracle数据库字符集为ZHS16GBK
SQL> ALTER DATABASE CHARACTER SET INTERNAL_USE ZHS16GBK;
#关闭数据库
SQL> shutdown immediate;
#启动数据库
SQL> startup;
#查看数据库当前字符编码
SQL> SELECT * FROM nls_database_parameters WHERE parameter='NLS_CHARACTERSET';

        现编码为:

        命令执行过程:

        修改后编码:

三、注意事项

        容器内登录Oracle时不能用root,要用oracle账户,否则出现如下错误提示。

        此情况下输入账号密码登录后,无法管理数据库,出现如下提示。

四、参考资料

1.Oracle ORA-12899 报错_xuexuexuexuexuex的博客-CSDN博客

2.如何使用oracle修改表字段长度_oracle 修改字段长度-CSDN博客

3.sqlplus sys/sys as sysdba报错ORA-12546:TNS:permission denied - 简书

4.ora-01031:insufficient privileges解决方法总结_ora 01031创建变空间时-CSDN博客

5.Oracle数据库如何修改字符集_oracle修改字符集-CSDN博客

7.修改Oracle字符集_oracle 修改字符集-CSDN博客

  • 24
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值