あるクライアントから、テストが必要なOracleデータベースが送られてきました。私たちはOracleを使用していませんし、社内にOracleの専門家もいません。
データベースに接続して問題をデバッグできるように、データベースを設定する必要があります。
Oracle 9(クライアントが稼働しているバージョン)と管理ツールの新規インストールを行いました。
どうしても、データをインポートさせることができないのです。こんな複雑なことはないはずです。何か間違っているのでしょうか。
試してみました。
imp 'sys/password AS SYSDBA' file=c:\database.dmp full=yes log=implog.txt
と得をしました。
Connected to: Personal Oracle9i Release 9.2.0.1.0 - Production
With the Partitioning, OLAP and Oracle Data Mining options
JServer Release 9.2.0.1.0 - Production
Export file created by EXPORT:V09.02.00 via conventional path
Warning: the objects were exported by SYSTEM, not by you
import done in WE8MSWIN1252 character set and AL16UTF16 NCHAR character set
. importing SYSTEM's objects into SYS
. importing ABCDE's objects into ABCDE
IMP-00003: ORACLE error 1435 encountered
ORA-01435: user does not exist
Import terminated successfully with warnings.
しかし、マネージャーにはどのスキーマのテーブルも表示されず、途方に暮れています。
最初にユーザー(またはスキーマ)を作成する必要があります。
C:\>sqlplus system/password
SQL> create user CLIENT_TEST identified by client_test_password;
SQL> grant connect, unlimited tablespace, resource to CLIENT_TEST;
SQL> exit
次に、「fromuser =」および「touser =」IMPスイッチを使用して、データを新しいユーザー/スキーマにインポートできます。
C:\>imp system/password FROMUSER=ABCDE TOUSER=client_test file=c:\database.dmp full=yes
それが役立つことを願っています。!
Oracleでは、この2つのアカウントは管理者であるため、SYSやSYSTEMとしてテーブルを作成することは一般的ではありません。
エラーは、クライアントがユーザーABCDE
としてテーブルを作成したことを意味します。
インポート前にそのユーザーを作成し、そのユーザーとしてデータをインポートする必要があります。
エクスポートされたファイルには、データベースに存在しないユーザーABCDE
に関連するパーミッションやその他の情報が含まれているため、これでエラーは解消されるはずです。
追加のヒントは、この質問をチェックしてください。Oracle Data Pump Exportファイル内のスキーマを決定する方法。