忙しい現代人の腰&肩のお悩み対策!

インポートしようとしたところ以下のエラーが表示されました。

「IMP-00003: Oracleエラー942が発生しました
ORA-00942: 表またはビューが存在しません。
IMP-00023: インポート・ビューがインストールされていません。DBAに連絡してください」

サイトで検索してもあまり情報が載ってなく、困り果ててます。どなたかアドバイスお願い致します。

このQ&Aに関連する最新のQ&A

A 回答 (2件)

9i -> 8i へのデータ移行であれば、



9iDBサーバに対し、8iクライアントがインストールされたPCで、エクスポートを行い、
8iDBサーバへ、8iクライアント付属のインポートユーティリティを使って、インポートするのが
正しい方法かと思います。

この辺は、マニュアル”移行ガイド”に書かれているハズですので、作業前に一読されると
良いかと存じます。
    • good
    • 0
この回答へのお礼

なるほど。そのような方法で移行できるのですね。
ただ、今回は本番環境が9iなのにテスト環境が8iのままなので結局9iに変更することになりました。
参考になりました。ありがとうございます。

お礼日時:2005/05/18 21:41

インポート・ユーティリティのバージョンとインポート先のデータベースのバージョンが


同じかどうかを確認してください。
(原則として、同じバージョンのみ動作します)

この回答への補足

Oracle9i(エクスポート)とOracle8i(インポート)です。。
同じバージョンでしかできないのですね。。
なんとかならないですよね?

補足日時:2005/05/11 22:00
    • good
    • 0

このQ&Aに関連する人気のQ&A

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています

関連するカテゴリからQ&Aを探す

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

Qバージョン違いのエクスポート/インポートについて

1.Oracle9iでエクスポート =>Oracle10iにインポート
2.Oracle10iでエクスポート =>Oracle9iにインポート

1、2はそれぞれ出来るのでしょうか?
(エクスポートは低いバージョンにて実施というような
記載もありました。2は不可能?)

実機が今手元に無い為、試せませんが、
理論的に可能なのかどうか知りたいです。

Aベストアンサー

マニュアルを参照しましょう。

> 1. Oracle9iでエクスポート =>Oracle10iにインポート
可能です。

> 2. Oracle10iでエクスポート =>Oracle9iにインポート
10gのexpで作成したファイルは9iではインポートできません。
9iのexpツールで10gからexpすれば可能です。ただし、10gからの新機能のオブジェクトは非対応です。

http://otndnld.oracle.co.jp/document/products/oracle10g/102/doc_cd/server.102/B19211-01/exp_imp.html#32139

># エクスポート・ダンプ・ファイルは、特別なバイナリ形式で格納されているため、インポート・ユーティリティによる読取り専用です。

># すべてのエクスポート・ダンプ・ファイルは、上位リリースのOracleデータベースにインポートできます。

># インポート・ユーティリティでは、上位のメンテナンス・リリースまたはバージョンのエクスポート・ユーティリティで作成されたエクスポート・ダンプ・ファイルの読取りはできません。
>たとえば、リリース2(9.2)のエクスポート・ダンプ・ファイルは、リリース1(9.0.1)のインポート・ユーティリティではインポートできません。

># 下位バージョンのエクスポート・ユーティリティを上位バージョンのOracleデータベースで実行すると、下位バージョンに存在しないデータベース・オブジェクトのカテゴリは、常に、エクスポートから除外されます。

># ダイレクト・パスの場合も従来型パスの場合も、Oracle9i のエクスポート・ユーティリティを使用して作成されたエクスポート・ファイルは、旧リリースのインポート・ユーティリティとは互換性がないため、インポートに使用できるのはOracle9i のインポート・ユーティリティのみです。下位互換性が問題となる場合は、Oracle9i データベースに対して下位のリリースまたはバージョンのエクスポート・ユーティリティを使用します。

マニュアルを参照しましょう。

> 1. Oracle9iでエクスポート =>Oracle10iにインポート
可能です。

> 2. Oracle10iでエクスポート =>Oracle9iにインポート
10gのexpで作成したファイルは9iではインポートできません。
9iのexpツールで10gからexpすれば可能です。ただし、10gからの新機能のオブジェクトは非対応です。

http://otndnld.oracle.co.jp/document/products/oracle10g/102/doc_cd/server.102/B19211-01/exp_imp.html#32139

># エクスポート・ダンプ・ファイルは、特別なバイナリ形式で格納...続きを読む

Qimportについて

こんばんは。

exportしたダンプファイルを頂いたので
oracleにimportしようと思っています。
色々調べて以下のようにわかったのですが、
間違っていないか、パラメータで追加した方が
よいものがあれば、ご指摘お願いします。

1)
既に同じ内容のテーブルが存在するが、それは気にせずimportを行う。既存のテーブルデータは新しくimportするもので更新されている???

2)
SQL*PLUSでコマンドを叩く。
コマンド内容は以下の通り。
imp system/manager fromuser=test1 touser=test2 file=db_data.dmp log=implog.log

test1 ← DBA権限あり。
test2 ← このユーザーの表領域にデータを作成したい。

Aベストアンサー

>上記オプションで、既存のテーブルは古いデータが削除され、

ignore=yにしてもimpコマンドではデータの削除は行われません。
一意制約違反となります。
あらかじめ不要なデータは消しておきましょう。

truncate table テーブル名;
でデータを切り捨てるのがいいかと。


>新規に増えたテーブルは
>新規に作成(データ込み)と考えて正しいでしょうか?

はい。こちらはこうです。

Q新バージョンのDMPを旧バージョンのサーバにIMPしたい

Windows2000サーバにOracle8iが入っています。そこでexpしたDMPファイルをwindowsNTサーバ、Oracle8にインポートしたいのです。

クライアントは、
 ・windowsNT oracle8 client
 ・windows2000 oracle8i client
と両方あるので、どちらからか行いたいです。

windowsNT側で行うと、IMP-00069というエラーが・・。
2000側で行うとIMP-00003: Oracleエラー 2248が発生しました。と言われてしまいます。

新→旧にDMPを戻す方法を教えてください。
よろしくお願いします。

Aベストアンサー

バージョンの異なるOracle間でのEXP/IMPを
うまく行うためには、
はどのバージョンでIMPするかだけでなく
はどのバージョンでEXPしたかも関係します。

Oracleでは基本的には、
・上位バージョンでEXPしたDMPは
下位バージョンではIMP出来ない。

・下位バージョンでEXPしたDMPならば
同バージョン以上でIMP出来る。

の原則が守られています。

したがって、EXP可能な
Clientが用意できているならば、
下位バージョン(Oracle8)のClientに
Net8 Easy Configで
Oracle8iサーバへの接続を作成し、
下位バージョン(Oracle8)のClientから
Oracle8iDBのデータをEXPしてDMPを作成して
下位バージョン(Oracle8)のClientでIMPしてやれば、
Oracle8へのインポートが可能です。

Q既にテーブルが存在する場合のインポート

インポート対象のテーブルが既に存在する場合、次のエラーが発生します。

IMP-00015: オブジェクトがすでに存在するため次の文は失敗しました:
"CREATE TABLE ...

SQL Loaderではデータにスペースや改行が含まれているとdatの作成がめんどうですし、dmpファイルでcreate文を削除するようなこともできればしたくありません。

データを追記したいのでテーブルを削除せずにインポートしたいのですが、どうすればよいでしょうか?

Aベストアンサー

参考URLの内容はどうでしょうか?

参考URL:http://www2.odn.ne.jp/~cag07740/tech_info/oracle_ans7.html

Q【Oracle】リモートでのimpコマンドによりインポート

初心者ですが、よろしくお願いいたします。

Windows2003サーバからRedHatLinuxES3のOracle10.2.0.1.0にたいして
impコマンドを実施したところ、以下のエラーで接続できません。
調べてみたのですが、有効な情報が得られなかったのでどなたか教えてください。

IMP-00058: Oracleエラー6550が発生しました。
ORA-06550: line 1, column 33:
PLS-00302: component 'SET_NO_OUTLINES' must be declared
ORA-06550: line 1, column 7:
PL/SQL: Statement ignored
IMP-00000: エラーが発生したためインポートを終了します。

Aベストアンサー

1.Importしようとしているダンプファイルは10.2.0.1のexp.exeで取得したものでしょうか?

2.Windows2003には10.2.0.1以外のOracleは入っていないでしょうか?impと打つとバージョンが出ますが、意図しないバージョンのimpが起動しているなんてことは無いですか?

3.提示されているエラーの前後も載せることが出来ますか?

QOracle12cでユーザのSQLPLUSログイン

基本的な質問ですみません。Oracle 12cを初めて使うのですが、すごく単純に、ユーザを作成し、そのユーザでデータベースオブジェクト(テーブルなど)を作成する拡張子が.sqlのスクリプトを流したいです。

11gまでの場合、システムユーザでCREATE USERしたのちに、コマンドプロンプトを立ち上げて
C:\Scripts> SQLPLUS <USER>/<PASSWORD> @createtables.sql
とするだけで良かったと思います。

今回、12cではユーザの考え方が変わっており、CDBとPDBを作成しました。
> SQLPLUS /NOLOG
SQL> CONN SYS AS SYSDBA
(上記のようにローカル接続するとCDBに接続される)

SQL> ALTER SESSION SET CONTAINER=PDB1; // PDBへ移動
SQL> SHOW CON_NAME // 念のため現在接続中のPDBの名前確認
SQL> STARTUP;
(これでマウント状態だったPDB1がOPENしてREAD WRITEになる)

この状態でCREATE USER文を実行してPDB1上でユーザを作成。

ここからなんですが、PDBやCDBへのログイン方法はわかたのですが、PDB上で作成したユーザにはどのようにしてログインするのでしょうか? ログインしてテーブル作成をしたいです。また、テーブル作成のスクリプト文(.sql)があるのでそれを流したい場合は、コマンドプロンプトからどのように実行すればよいでしょうか?

基本的な質問で恐縮ですが、宜しくお願いします。

基本的な質問ですみません。Oracle 12cを初めて使うのですが、すごく単純に、ユーザを作成し、そのユーザでデータベースオブジェクト(テーブルなど)を作成する拡張子が.sqlのスクリプトを流したいです。

11gまでの場合、システムユーザでCREATE USERしたのちに、コマンドプロンプトを立ち上げて
C:\Scripts> SQLPLUS <USER>/<PASSWORD> @createtables.sql
とするだけで良かったと思います。

今回、12cではユーザの考え方が変わっており、CDBとPDBを作成しました。
> SQLPLUS /NOLOG
SQL> CONN SYS AS SYSDBA
...続きを読む

Aベストアンサー

こんにちわ。

> ORA-01017: ユーザー名/パスワードが無効です。ログオンは拒否されました。
上のtnsnames.ora の設定は、CDB に接続するためのものです。
新しい接続文字列で、SERVICE_NAME にPDB名を指定したものを作成して
試してみて下さい。

Qユーザーへのディレクトリ権限付与について

WindowsXPのOracle9i環境にて、
まず、以下のようにしてユーザ「username」を作成しました。

create user username identified by Password default tablespace tab_space temporary tablespacetemp;
grant dba,resource,connect to username;

次にsysユーザにて、CREATE DIRECTORY FILE_PATH as 'd:\temp';
ディレクトリを作成しました。
そして、そのディレクトリに対して、以下のように権限付与しようとすると、「ユーザ"username"が存在しません。」エラーが発生します。
grant READ,WRITE ON directory dir to username;
また、grant READ,WRITE ON directory dir to public;
とすると、権限付与は成功しますが、ユーザusernameにはディレクトリ参照権限は与えられていませんでした。

何か間違っておりますでしょうか?
それとも何か手順で足らないものがあるのでしょうか?
ご教示いただければと思います。

WindowsXPのOracle9i環境にて、
まず、以下のようにしてユーザ「username」を作成しました。

create user username identified by Password default tablespace tab_space temporary tablespacetemp;
grant dba,resource,connect to username;

次にsysユーザにて、CREATE DIRECTORY FILE_PATH as 'd:\temp';
ディレクトリを作成しました。
そして、そのディレクトリに対して、以下のように権限付与しようとすると、「ユーザ"username"が存在しません。」エラーが発生します。
grant READ,WRITE ON di...続きを読む

Aベストアンサー

dba_usersに出てこない以上、そのユーザはデータベース上には存在しないかと思います。

そのパッケージソフトが、どのような構成をしているのかわかりませんが、パッケージ上のユーザとデータベースのユーザが別なのではないでしょうか。

パッケージ上のAというユーザが、データベース上のXというユーザにログインして動作するというのは、よくあるパターンです。

パッケージのサポートに確認するのが良いかと思います。

QSYSユーザーでログインしたい

SQL plusでSYSユーザーでログインするにはどうすればよいのでしょうか?
SYSTEMユーザーやSCOTTユーザーではログインできるのですが、SYSユーザーになる方法がわかりません。
お願いします。

Aベストアンサー

>SQL plusでSYSユーザーでログインするにはどうすればよいのでしょうか?
特別なことする必要がないと思います。
ログインできない場合いろいろな原因が考えられます。
一番可能な原因は設定によってSYSユーザーNOMAL権限でログインできない場合あります。
この場合
sqlplus sys/パスワード@接続文字列 as sysdba
で試してください。


>SYSTEMユーザーやSCOTTユーザーではログインできるのですが、SYSユーザーになる方法がわかりません。
conn sys/パスワード@接続文字列 as sysdba

Qexp、impについて

Oracleをインストールするとexpコマンドとimpコマンドも使用可能になるのでしょうか。
実際にインストールすればいいのですがインストールしていい端末が無い為、確認できません。
インストールの「インストール・タイプ」で変わってくるのでしょうか。
このような質問をして申し訳ありませんがアドバイス宜しくお願いします。

Aベストアンサー

Oracleのインストールには以下のタイプがあります。
OracleデータベースのインストールではExp/Impがインストールされます。
Oracleクライアントのインストールでは管理者を指定するか、カスタムで指定すればインストールされます。

・Oracleデータベース
 # StandardEdition
# EnterpriseEdition
# カスタム
http://otndnld.oracle.co.jp/document/products/oracle10g/102/windows/B25251-08/toc.htm

・Oracleクライアント
 # InstantClient
 # 管理者
 # ランタイム
 # カスタム
http://otndnld.oracle.co.jp/document/products/oracle10g/102/windows/B25254-02/toc.htm#64355

Q3つの表の外部結合

表A、B、Cの3つがあり、Aのすべての行を出力したいと考えています。
外部結合を用いるのだとは思うのですが、3つの表に対して行う場合の
書き方がわからず困っています。
ご教授いただけないでしょうか?
select * from a,b,c
where a.商品ID =b.商品ID (+) and b.商品ID (+) =c.商品ID (+)
としてみましたが、うまくいきませんでした。

Aベストアンサー

ansi構文の趣旨からいえば、結合条件と絞り込み条件は分けて書くので・・

select *
from a
left join b on (a.商品ID =b.商品ID)
left join c on (b.商品ID =c.商品ID)
where a.年月 = 任意の値

と書くのが一般的でしょうね。


このQ&Aを見た人がよく見るQ&A

人気Q&Aランキング