共計 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 問一下細節