• 締切済み

Oracle8iでテーブルをエクスポートする方法

Oracle10gを使用しています。Oracle8iから特定のテーブルを抽出してOracle10gに入れようとしましたが、Oracle10gのexpコマンドは互換性の問題で8iに対して使えませんでした。そこでOracle8iのexpコマンドを使用しようかと考えましたが、テーブルごとのエクスポートができないとのことで不可(データベースが大きすぎるため、そもそも8iのExpコマンドを実行できる権限を持っていないのでできませんが)。 仕方がないのでExpコマンドはあきらめて、テーブル定義抽出→データをCSVまたはSQLで抽出という手順でデータを移そうかと考えています。データの抽出はできたのですが、テーブル定義の取得は10gで使えるdbms_metadata.get_ddlが使用できないので取得できずにこまっています。8iでテーブル定義を取得するにはどうしたらいいのでしょうか? なお当方8iのデータベースのSystem/Sys権限を所有していないません。また8iがインストールされているサーバへログインすることもできません。それを考慮した上で実現可能な方法をご提示願います。

  • Oracle
  • 回答数2
  • ありがとう数5

みんなの回答

  • reset_cat
  • ベストアンサー率68% (94/138)
回答No.2

Oracle8iへは、対象テーブルの所有者でログインすることもできないのでしょうか?それだとどうしようもないのですが・・・ 対象テーブルの所有者でログインできるのならば、expコマンドでその所有者でログインし、tables,rowsパラメータを指定すればテーブル単位で定義のみエクスポートできるはずです。

  • 3rd_001
  • ベストアンサー率66% (115/174)
回答No.1

Oracle8iですと、定義を抜き出すのはexpで「rows=n」オプションを指定してCreate文のみ抜き出すことが可能です。 あとはimpの際に「show=y」を指定するとCreate文が表示されます。 しかし権限がないので上記ができないということですよね。 >また8iがインストールされているサーバへログインすることもできません。それを考慮した上で実現可能な方法をご提示願います。 上記はSQLを発行する事自体ができないということでしょうか。 データの抽出はできたということなので、SQL文は発行できると仮定するとディクショナリから設定を抜き出してCreate文を作るしかないでしょう。 ※昔、PL/SQLで作ったことがあります。 以下のようなディクショナリから情報を抜き出します。 user_tables user_tab_columns user_indexes user_ind_columns user_constraints そえもダメならテーブル定義を管理している部署にCreate文をもらうしかないと思います。

関連するQ&A

  • oracle9iのDBからoracle9.2でエクスポートするには・・・

    データベースにoracle9iを使用しているのですが クライアントのoracle9.2からexpコマンドを発行してもエラーで 落ちてしまいます。 うまくエクスポートする方法ありましたら宜しくお願いします。

  • Oracle10gから8iへのデータ移行について

    Oracle10g(10.1.0.2)のデータをOracle8i(8.1.6)へ移行する方法を教えていただけないでしょうか? Oracle8iからOracle10gのデータベースへアクセスして,そこでエクスポートすればいいのでしょうか?その方法もいろいろ試しているのですが,解決には至っておりません。 よろしくお願いします。

  • 異なるOracleサーバ上のテーブルを結合する方法

    異なるOracleサーバ上のテーブルを結合する方法 IPアドレスが異なるOracleのテーブルを結合して出力したいのですが可能でしょうか?2つのテーブルをローカルにダウンロードして結合表示するとパフォーマンスが悪いので、2つのサーバから直接データをダウンロードしたいのです。2つのOracleサーバは読み取り権限しか与えられておらず、SELECT文ぐらいしか使えません。 Oracle 10G Windows 2003 Server

  • Oracleのエクスポートでエラー

    Oracle9iでデータベース全体のエクスポートを取ろうとすると 以下のエラーが出てしまいます . クラスタ定義をエクスポート中 EXP-00056: Oracleエラー19206が発生しました。 ORA-19206: 問合せの値またはREF CURSORパラメータが無効です ORA-06512: "SYS.DBMS_XMLGEN", 行83 ORA-06512: "SYS.DBMS_METADATA", 行345 ORA-06512: "SYS.DBMS_METADATA", 行410 ORA-06512: "SYS.DBMS_METADATA", 行449 ORA-06512: "SYS.DBMS_METADATA", 行1156 ORA-06512: "SYS.DBMS_METADATA", 行1141 ORA-06512: 行1 EXP-00000: エラーが発生したためエクスポートを終了します。 見てみるとSYS.DBMS_XMLGENというテーブルは存在していませんでした。 どうすればデータベースのエクスポートが出来るでしょうか? 教えてください。

  • テーブルのエクスポート・インポート

    SQL Server2005 を使用しています。 テーブルのインポート・エクスポートに関して質問があります。 今まで、Oracleを主に使用していて、「EXP」「IMP」コマンドを使用して DMPファイルを介して別PCのデータベース間でテーブルのやり取りをしていました。(DB上のテーブルすべてや特定のテーブルのみなど) 同様のことをSQL Serverで実現したく下記を試したのですが上手くいきません。 1.Management Studio で「タスク」→「データのインポート(エクスポート)」   フラットファイル、Excel、MDBファイルなど試したのですが、   これらの中間ファイルを介した際にデータ型が変わってしまい   元の型のまま戻せない。   Oracleの「DMP」ファイルのようなものには落とせないのでしょうか? 2.「bcp」コマンド   これに関しては、複雑でよくわかりませんでした。   もし、このコマンドで実現可能であれば、やり方を教えて下さると   助かります。 以上、ながなが書きましたが宜しくお願い致します。

  • oracleのテーブルExportについて

    oracle10gを使用しております。 テーブルに億桁のレコードが登録してある場合、 テーブルExportを行うと時間がかかってしまう&出力dumpファイルが 大きくなってしまうといった弊害があると思うのですが、 テーブルレコードを数万単位に分割してExportすることは可能でしょうか? また、その分割したファイルをImportする際は、Export前と同じく 一つのテーブルでレコードを管理することが可能でしょうか。 大雑把な質問で申し訳ありませんが、宜しくお願いします。 また、今回Export時に使用するコマンドは以下になります。 exp スキーマ名/パスワード constraints=y grants=y indexes=y tables=テーブルA file= テーブルA.dmp log=テーブルA.log

  • Oracle8i データをファイルに出力

    Oracle8iでテーブルのデータをCSV形式でファイルに出力するコマンドってなんですか? DBAStudioを使って出力することはできるんですが。。。 よろしくお願いします。

  • GET_DDLについて

    DBMS_METADATA.GET_DDLを使い定義情報を取得しようとしています。 尚、各定義情報は名前を指定せず、全て取得したいです。 テーブル、ビュー、Indexは以下のようにして取得できました。 (select DBMS_METADATA.GET_DDL('TABLE',table_name) from user_tables;) パッケージ、パッケージボディ、ファンクション、プロシージャーの取得方法が 分かりません。 一応、以下のように名前を指定すると取得できました。 select DBMS_METADATA.GET_DDL('PROCEDURE','名前') from dual; 名前を指定せず、全て取得する方法が分かりません。 パッケージ、パッケージボディ、ファンクション、プロシージャーに関して 全て取得する方法をご教授おねがいします。

  • transact-sqlからoracle DBを参照したい。

    transact-sqlからoracle DBを参照したい。 sql-server 2005 window server 2003 R2での環境です。transact-sqlを使用して、他のマシン上にあるoracle データベース上のテーブルのデータを取得し、そのデータを自身のマシン上のsql serverのテーブルに格納したいのですが、そのようなことはできますでしょうか。 もし、できるとすれば、どのような方法(手順)になるのでしょうか。

  • oracle:統計情報とテーブル削除

    oracle10gを使用しております。 統計情報について質問させていただきます。 テーブルAについて、[statistics = none]を指定しExportします。 統計情報取得コマンドを実行します。 analyze table TABLE_A compute statistics; 後に、テーブルAを削除します。 drop table TABLE_A; バックアップファイルを基に、テーブルAをImportします。 このとき、テーブルAの統計情報はExport実行時と同じになるのでしょうか?