2

元の exp (expdp ではない) で作成された Oracle ダンプ ファイルがあります (EXPORT:V10.02.01、Oracle 10g)。これらには、4 つのテーブルのテーブル データのみが含まれます。

1) 別の Oracle DB にインポートせずに、テーブル データをファイル (フラット/固定幅、CVS、またはその他のテキスト ファイル) に抽出したい。【好ましい】

2) または、他のツールを使用してデータを抽出できるように、それらを通常のユーザー (SYSDBA ではない) にインポートできるソリューションが必要です。

私のデータベースは 11g ですが、必要に応じて 10g データベースを見つけることができます。私は TOAD for Oracle Xpert 11.6.1.6 を処分しています。私は中程度の経験を持つ Oracle プログラマーですが、これまで EXP/IMP を使用したことはありません。

(以下の情報は、データを保護するために隠されています。)

ダンプ ファイルの作成方法は次のとおりです。

exp FILE=data.dmp \
LOG=data.log \
TABLES=USER1.TABLE1,USER1.TABLE2,USER1.TABLE3,USER1.TABLE4 \
INDEXES=N TRIGGERS=N CONSTRAINTS=N GRANTS=N

ログは次のとおりです。

Connected to: Oracle Database 10g Enterprise Edition Release 10.2.0.5.0 - 64bit Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options
Export done in WE8MSWIN1252 character set and AL16UTF16 NCHAR character set
Note: grants on tables/views/sequences/roles will not be exported
Note: indexes on tables will not be exported
Note: constraints on tables will not be exported

About to export specified tables via Conventional Path ...
Current user changed to USER1
. . exporting table                      TABLE1        271 rows exported
. . exporting table                      TABLE2     272088 rows exported
. . exporting table                      TABLE3       2770 rows exported
. . exporting table                      TABLE4      21041 rows exported
Export terminated successfully without warnings.

前もって感謝します。

4

1 に答える 1

2

更新: TOAD バージョン 9.7.2 は、EXP によって生成された「dmp」ファイルを読み取ります。

メニューから DATABASE -> EXPORT -> EXPORT FILE BROWSER を選択します。

TOAD 用の DBA ユーティリティがインストールされている必要があります。ファイルが正しく解析されるという実際の保証はありませんが、データはスキーマ ブラウザーの TOAD に表示されます。

注: expユーティリティによって生成された dmp ファイルを処理する唯一の既知のユーティリティは、impユーティリティです。ダンプ ファイルを自分で読み取ることはできません。これを行うと、ファイルが正しく解析されない危険性があります。

すでに ORACLE テーブルにデータがある場合:

テーブル データをファイルに抽出するには、SQL*PLUS を呼び出すシェル スクリプトを作成し、SQL*PLUS にテーブル データをファイルにスプールさせます。テーブルごとに 1 つのスクリプトが必要です。

#!/bin/sh
#NOTE: The path to sqlplus will vary on your system,
#      but it is generally $ORACLE_HOME/bin/sqlplus.
#YOU NEED TO UNCOMMENT THESE LINES AND SET APPROPRIATELY.
#export ORACLE_SID=YOUR_SID
#export ORACLE_HOME=PATH_TO_YOUR_ORACLE_HOME
#export PATH=$PATH:$ORACLE_HOME/bin
sqlplus -s user/pwd@db << EOF
set pagesize 0
set linesize 0
set linesize 255
set heading off
set echo off
SPOOL TABLE1_DATA.txt
REM FOR EACH COLUMN IN TABLE1, SET THE FORMAT
COL FIELD_ID   format 999,999,999
COL FIELD_DATA format a99
select FIELD_ID,FIELD_DATA from TABLE1;
SPOOL OFF
EOF

各行の行サイズを設定し、各列の形式を設定してください。数値形式列については上記の FIELD_ID を、文字列については FIELD_DATA を参照してください。注: ファイルの末尾から「選択された N 行」を削除する必要があります。

(ユーティリティを使用して、作成したファイルを別のスキーマにインポートできimpます。)

于 2014-06-02T16:05:17.013 に答える