win7下安装oracle11G系列之四:解决生产环境无法建表问题
简介:
本系列将针对如何在win7下安装oracle11G及在生产环境下进行应用的全过程进行介绍,以下是模拟实际生产环境安装时遇到的不同问题作出的相应解决方案。本系列共分为四部分进行阐述,分别为:1、安装oracle11G软件;2、使用EM完成对oracle11G相关设置;3、设置PL/SQL Developer关联Oracle11G;4、解决生产环境无法建表问题。
说明:
此系列文章重点放在记录作者第一次常规性安装oracle11G时,遇到的问题及应对问题作出的解决方法,并非完全的针对于安装介绍,因此可以作为大家安装时的参考。对于完整的安装方案会在后期总结发布文章。
系列四:解决生产环境无法建表问题
1、登陆PL/SQL,执行SQL语句,建表提示错误,显示“ORA-00957:duplicate column name”,如下图所示:
2、检查建表SQL语句未发现异常,如下图:
3、输入“select * from V$NLS_PARAMETERS”语句,检查字符集,如下:
4、发现上图中,第一行value值不是简体中文,初步判断问题在此引起。此时检查以往曾建立的含有中文列名的表,发下中文列名变成了“?????”显示,再次验证显示中文出现问题,如下所示:
5、进入注册表。
在电脑“开始”菜单里找到“运行”,然后在对话框里输入“regedit”就能打开电脑注册表了。依次单击HKEY_LOCAL_MACHINE --->SOFTWARE ---> ORACLE--->KEY_OraDb11g_home1,找到NLS_LANG,查看数值数据是否为:SIMPLIFIED CHINESE_CHINA.ZHS16GBK。如下图:
6、如果以上设置没有问题,查看环境变量设置,看是否有环境变量NLS_LANG,若没有进行添加。按如下步骤进行:
7、按以上步骤创建好环境变量后,重新启动PL/SQL,重新执行SQL建表语句,恢复正常。
8、接下来为了模拟现场环境,打算用imp进行数据数据导入,执行导入命令,提示“IMP-00000: Message 0 not found; No message file for product=RDBMS, facility=IMP
”,初步怀疑为imp全库级导入是否和已有表有冲突,于是删除掉了已有重复表。并检查环境变量oracle_home要为db_1home的文件路径。检查后发现未有异常。
9、再次执行imp导入操作,提示“出现ORA-01950错误对表空间"system"无权限”,判断是权限问题,于是重新授予权限。
此处有两种解决方法:
方法一:
打开SQL Plus——————>执行以下命令:
conn system/mima;
grant resource to yonghu;
说明:“mima”为登陆的密码,"yonghu"应为所创建的用户名,填写实际创建时所起的用户名即可。
方法二:
打开SQL Plus——————>执行以下命令:
conn yonghu/yonghumima as sysdba;
说明:在用户连接时就让此用户拥有sysdba的权限。
10、再次执行imp导入操作,恢复正常。以上两步,如下图所示:
11、启动生产环境,数据已经成功导入环境,一切正常。