ORACLEを使用する過程で、さまざまな問題やエラーが発生します。その中で、ORA-12899は、以前ローカルマシンにデータをインポートしたときに発生し続けていた問題ですが、幸いなことに、この問題は解決されました。 . 皆さんのお役に立てれば幸いです。
ORA-12899 が表示されます。これは、中国語が UTF-8 で 3 バイト、ZHS16GBK で 2 バイトを占めることが原因です。次に、ソース dmp ファイルの文字セットが ZHS16GBK ライブラリからダンプされたデータであることが原因です。ターゲット文字セットが UTF-8 であるライブラリにインポートすると、ORA-12899 が表示されます
実際、この問題は ORACLE の文字セットを変更することでうまく解決できます;
しかし、文字セットを変更するときに、 sys アカウントのパスワードを忘れてしまい、それが悲劇でした。そのため、まず sys ユーザーのパスワードを変更する必要がありました
パスワードを変更するにはいくつかの状況があります。以下に 1 つずつリストします。
1. SYS、SYSTEMユーザー以外のログインパスワードを忘れた場合。 SYS (または SYSTEM) ユーザーとしてログインします。
CONN SYS/PASS_WORD AS SYSDBA;
ユーザーのパスワードを変更するには、次のステートメントを使用します。 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就已经彻底解决了,就可以进行数据的导入了...
PS:下面给大家补充下:oracle 里*.ora文件是干什么用的?
为什么10g里边没有*.ora文件?
9i里边的*.ora 等于10g里边的*.dbf么?
在创建表a8da73ae7924bc0166fb7e2b785e4751空间5db79b134e9f6b82c0b36e0489ee08ed
时
DATAFILE 用于指定数据文件的具体位置和大小。但是我看到有些文章使用
*.ora文件,如DATAFILE 'D:\ORACLE\ORADATA\ORA92\LUNTAN.ora' SIZE 5M
,有些
则使用*.dbf文件,如DATAFILE 'D:\ORACLE\ORADATA\ORA92\LUNTAN.dbf' SIZE 5M
ALTER USER user_name IDENTIFIED BY newpass;
注: パスワードにすべて数字を使用することはできません。また、数字で始めることはできません。それ以外の場合は、次のように表示されます。 ORA-00988: パスワードが見つからないか無効です
SYSTEMユーザーのパスワードを忘れた場合は、SYSユーザーでログインできます。次に、ALTER USER パスワード
SYS ユーザーのパスワードを忘れた場合は、SYSTEM ユーザーでログインできます。次に、ALTER USER パスワード
を使用してパスワードを変更します。 🎜🎜🎜3. SYS および SYSTEM ユーザーのパスワードを忘れたり紛失した場合。 🎜🎜🎜🎜これは特に重要です。 🎜🎜ORAPWD.EXE ツールを使用してパスワードを変更できます。 🎜🎜スタート メニュー -> ファイル名を指定して実行 -> 「CMD」と入力し、コマンド プロンプト ウィンドウを開き、次のコマンドを入力します。 🎜🎜rrreee🎜🎜🎜このコマンドは、データベース。パスワード ファイルの場所は、ORACLE_HOME ディレクトリの /database ディレクトリにあります。 🎜🎜このパスワードはsysユーザーのパスワードを変更するためのものです。 sys と system を除く他のユーザーのパスワードは変更されません。 🎜🎜🎜パスワードを変更した後、dba として変更を加えることができます。dba でない場合は、変更コマンド 🎜🎜を実行するときに、権限が不十分であることを確認するメッセージが表示されます。 「 sqlplus sys/oracle@192.168.0.1/orcl as SYSDBA
」と入力します。🎜🎜正常に入力できない場合は、ユーザー名とパスワードを手動で入力する必要があります。入力後、「SQL>」が表示されます。 " プロンプトが表示されるので、次のようにします。指定されたコマンドを順番に実行するだけです。🎜
🎜rrreee🎜🎜🎜 は、文字セットに互換性がないことを報告します。このとき、INTERNAL_USE コマンドは文字をチェックしません。 set superset: 🎜
🎜rrreee🎜🎜🎜現時点では、この ORA-12899 は完全に解決されており、データはインポート可能です...🎜🎜🎜🎜 PS: 追加します。以下: 🎜🎜🎜🎜oracle *.ora ファイルは何に使用されますか? 🎜🎜🎜🎜10g に *.ora ファイルがないのはなぜですか? 🎜🎜9i の *.ora は 10g の *.dbf と同じですか? 🎜🎜テーブル作成時7b3ca52bd248931a27c60ea469b9af68space5db79b134e9f6b82c0b36e0489ee08ed
🎜🎜 DATAFILEはデータファイルの指定に使用されます具体的な場所とサイズ。しかし、一部の記事では DATAFILE 'D:\ORACLE\ORADATA\ORA92\LUNTAN.ora' SIZE 5M
などの 🎜🎜 *.ora ファイルが使用されており、一部の 🎜🎜 では *.dbf ファイルが使用されていることがわかりました。 、DATAFILE 'D:\ORACLE\ORADATA\ORA92\LUNTAN.dbf' SIZE 5M
など。 🎜🎜🎜オンラインの格言は、.dbf-data ファイル、.tmp-一時ファイル、.log-redo ログ ファイル、.ctl-control ファイル🎜🎜 .ora-parameter ファイル、.dat-Oracle システム ファイル 🎜🎜🎜 を識別するだけですデータ ファイルの場合は、ora/dat/dbf であっても同じであり、違いはありません。私も個人的にはそう思います。みんなの意見はどうだろうか? 🎜🎜関連する推奨事項: 🎜🎜🎜🎜Oracle はテーブルスペースのデータファイルの場所をどのように変更しますか? 🎜🎜🎜🎜 mysql および oracle データベースを停止および開始するためのバッチファイル 🎜🎜🎜🎜 Oracle Clob の保存の問題を解決する方法フィールドが長すぎますか? 🎜🎜
以上がOracle データベースで ora-12899 エラーが発生した場合の対処方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。