共计 1885 个字符,预计需要花费 5 分钟才能阅读完成。
自动写代码机器人,免费开通
这篇文章将为大家详细讲解有关 Oracle 数据库中出现 ora-12899 错误怎么办,丸趣 TV 小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。
在使用 ORACLE 的过程中, 会出现各种各样的问题, 各种各样的错误, 其中 ORA-12899 就是前段时间我在将数据导入到我本地机器上的时候一直出现的问题. 不过还好已经解决了这个问题, 现在分享一下, 解决方案;
出现 ORA-12899, 是字符集引起的, 中文在 UTF- 8 中占 3 个字节,ZHS16GBK 中占 2 个字节, 而源 dmp 文件字符集是 ZHS16GBK 库里倒出来的数据, 现在要导入到目标字符集为 UTF- 8 的库里, 所以会出现 ORA-12899
其实只要修改一下 ORACLE 的字符集就可以很好的解决这个问题;
但是在修改字符集的时候, 我发现, 我把 sys 账户的密码给忘记了, 这就悲剧了, 所以我只好先修改 sys 用户的密码咯.
修改密码也是分好几种情况的, 下面我就一一列举吧:
一、忘记除 SYS、SYSTEM 用户之外的用户的登录密码。
用 SYS (或 SYSTEM) 用户登录。
CONN SYS/PASS_WORD AS SYSDBA;
使用如下语句修改用户的密码。
ALTER USER user_name IDENTIFIED BY newpass;
注意:密码不能全是数字。并且不能是数字开头。否则会出现:ORA-00988: 口令缺失或无效
二、忘记 SYS 用户,或者是 SYSTEM 用户的密码。
如果是忘记 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;
三、如果 SYS,SYSTEM 用户的密码都忘记或是丢失。
这一项尤其重要。
可以使用 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 就已经彻底解决了, 就可以进行数据的导入了 …
关于“Oracle 数据库中出现 ora-12899 错误怎么办”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,使各位可以学到更多知识,如果觉得文章不错,请把它分享出去让更多的人看到。
向 AI 问一下细节