这篇文章运用简单易懂的例子给大家介绍Oracle数据库出现ora-12899错误的解决方法,文章内容步步紧凑,希望大家根据这篇文章可以有所收获。
出现ORA-12899,是字符集引起的,中文在UTF-8中占3个字节,ZHS16GBK中占2个字节,而源dmp文件字符集是ZHS16GBK库里倒出来的数据,现在要导入到目标字符集为UTF-8的库里,所以会出现ORA-12899
其实只要修改一下ORACLE 的字符集就可以很好的解决这个问题;
但是在修改字符集的时候,我发现,我把sys账户的密码给忘记了,这就悲剧了,所以我只好先修改sys用户的密码咯.
修改密码也是分好几种情况的,下面我就一一列举吧:
CONN SYS/PASS_WORD AS SYSDBA;
ALTER USER user_name IDENTIFIED BY newpass;
注意:密码不能全是数字。并且不能是数字开头。否则会出现:ORA-00988: 口令缺失或无效
如果是忘记SYstem用户的密码,可以用SYS用户登录。然后用ALTER USER 密令
修改密码。
CONN SYS//PASS_WORD AS SYSDBA; ALTER USER SYstem IDENTIFIED BY newpass;
如果是忘记SYS用户的密码,可以用SYstem用户登录。然后用ALTER USER 密令
修改密码。
CONN SYstem//PASS_WORD ; ALTER USER SYstem IDENTIFIED BY newpass;
这一项尤其重要。
可以使用ORAPWD.EXE 工具修改密码。
开始菜单->运行->输入‘CMD',打开命令提示符窗口,输入如下命令:
orapwd file=D:/oracle/product/10.2.0/db_1/database/pwdctcsys.ora password=newpass
这个命令重新生成了数据库的密码文件。密码文件的位置在ORACLE_HOME目录下
的/database目录下。
这个密码是修改sys用户的密码。除sys和system其他用户的密码不会改变。
修改过密码之后就能以dba的身份进行修改了,不是dba的话在执行修改命令的时候会提示你权限不足.
开始-->运行-->cmd,之后输入:"sqlplus sys/oracle@192.168.0.1/orcl as SYSDBA
"
如果不能正常进入,那就需要你手动输入用户名和密码,进入之后会出现"sql>"的提示,按照下面给出的命令依次执行就可以了,
sql>SHUTDOWN IMMEDIATE sql>STARTUP MOUNT sql>ALTER SYstem ENABLE RESTRICTED SESSION; sql>ALTER SYstem SET JOB_QUEUE_PROCESSES=0; sql>ALTER SYstem SET AQ_TM_PROCESSES=0; sql>ALTER DATABASE OPEN; sql> ALTER DATABASE CHaraCTER SET ZHS16GBK ; ALTER DATABASE CHaraCTER SET ZHS16GBK *ERROR at line 1: ORA-12712: new character set must be a superset of old character set
报字符集不兼容,此时下INTERNAL_USE指令不对字符集超集进行检查:
sql>ALTER DATABASE CHaraCTER SET INTERNAL_USE ZHS16GBK; sql>SHUTDOWN IMMEDIATE sql>STARTUP
这时候,这个ORA-12899就已经彻底解决了,就可以进行数据的导入了...
PS:下面给大家补充下:oracle 里*.ora文件是干什么用的?
为什么10g里边没有*.ora文件?
9i里边的*.ora 等于10g里边的*.dbf么?
在创建表<a href=' http://www.eysky.cn' target='_blank'>空间</a>
时
DATAFILE 用于指定数据文件的具体位置和大小。但是我看到有些文章使用
*.ora文件,如DATAFILE 'D:\\ORACLE\\ORADATA\\ORA92\\LUNTAN.ora' SIZE 5M
,有些
则使用*.dbf文件,如DATAFILE 'D:\\ORACLE\\ORADATA\\ORA92\\LUNTAN.dbf' SIZE 5M
。
网上的说法是.dbf-数据文件, .tmp-临时文件, .log-重作日志文件(redo log file), .ctl-控制文件
只是通过扩展名来标识文件的类型而已,对于数据文件不管是ora/dat/dbf,都是一样的,没有什么区别。我个人觉得也是这样。不知大家的意见是怎样的?
以上就是Oracle数据库出现ora-12899错误的解决方法,详细使用情况还需要大家自己亲自动手使用过才能领会。如果想了解更多相关内容,欢迎关注编程之家行业资讯频道!
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。