目录
一、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博客文章来源:https://www.toymoban.com/news/detail-760911.html
7.修改Oracle字符集_oracle 修改字符集-CSDN博客文章来源地址https://www.toymoban.com/news/detail-760911.html
到了这里,关于Win11 Docker运行Oracle11g之数据导入(二)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!