• ベストアンサー
  • 暇なときにでも

【oracle10g 】Oracle Enterprise Managreでの表のインポート

資格取得の為に、体験版を操作しながら勉強しています。Oracle Enterprise Managreで、表をエクスポートし、一度表を削除(truncate)して、インポートしようとしています。 画面上、インポートは正しく行われているみたいですが、データが戻ってません。 ログには ORA-39111: Dependent object type TABLE_STATISTICS skipped, base object type TABLE:"TOSHIHIRO"."PERSON" already exists Job "TOSHIHIRO"."IMPORT000252" completed with 2 error(s) at 20:11 と、あります。 ネットで検索すると、以下を見つけましたが、具体的にどのような処理をすれば良いのかわかりません。 ORA-39111: 依存オブジェクト型stringはスキップされ、ベース・オブジェクト型stringはすでに存在します。 原因: ベース・オブジェクトがすでに存在するため、Data Pumpインポート・ジョブの実行中に依存オブジェクトがスキップされています。 処置: ダンプ・ファイルからのオブジェクトを必要とする場合は、ベース・オブジェクトと依存オブジェクトを削除し、適切なフィルタを使用してインポートを再試行してください。 よろしくお願いします。

共感・応援の気持ちを伝えよう!

  • 回答数2
  • 閲覧数2505
  • ありがとう数2

質問者が選んだベストアンサー

  • ベストアンサー
  • 回答No.2

No.1でも書いたのですがimpdpコマンドのパラメータでTABLE_EXISTS_ACTIONがあります。 TABLE_EXISTS_ACTION=APPENDで表が存在してもインポートすることが可能です。(デフォルトは通常SKIP) 資格取得の為の勉強なら、oracleのマニュアルを参照されたほうが良いと思います。 OTN(参考URL参照、要ユーザ登録(無料))でマニュアルがダウンロードできるので、見てはどうでしょうか?

参考URL:
http://otn.oracle.co.jp/

共感・感謝の気持ちを伝えよう!

関連するQ&A

  • datapumpの実行方法について

    いつもお世話になっております。 datapumpの実行方法(expdp/impdp)について、ご存知の方がいらっしゃいましたら、ご教授の程お願い致します。 ------------------------------ ●環境  Oracle 11g (11.2.0.3) 以下の手順で、エクスポート/インポート テストを行ったのですが、 expdpで"tables"を指定するとエラーとなり実行できませんでした。 full=y(データベース全体)は動きました。 tablesで指定するものは、"CREATE TABLE"で作成したテーブル名ではないのでしょうか。 また、テーブルスペースを削除"drop tablespace tbl01"したのですが、 expdpでデータベース全体をエクスポートしたものから、impdpしても 削除したものが戻せませんでした。 impdpのコマンドに誤りがあるのでしょうか。 ●expdp実行 ----- ・tablespace作成 $ sqlplus / as sysdba SQL> create tablespace tbl01 datafile '+data/testdb/datafile/tblsp1' size 10m autoextend off; ----- ・sequence作成 SQL> create sequence seq1; ----- ・TABLE作成 SQL> CREATE TABLE TEST_TBL(USER_ID VARCHAR2(8) NOT NULL, DEPT_NO VARCHAR2(8)) tablespace tbl01; ----- ・INSERT実行(5件分) begin for i in 1..5 loop INSERT INTO TEST_TBL (USER_ID, DEPT_NO) VALUES (seq1.nextval, '1234') ; commit; end loop; end; / ----- ・expdp使用する為の準備 ディレクトリの作成と read/write 権限の付与 $ sqlplus / as sysdba SQL> create directory expdp_dir as '/u01/tpump'; SQL> grant read,write on directory expdp_dir to system; ----- ・expdb実行 $ expdp system/pass dumpfile=TEST_DIR:expdp_all.dmp logfile= TEST_DIR:expdp_all.log full=y ===== "SYSTEM"."SYS_EXPORT_FULL_01"を起動しています: system/******** dumpfile=TEST_DIR:expdp_all.dmp logfile= full=y BLOCKSメソッドを使用して見積り中です... オブジェクト型DATABASE_EXPORT/SCHEMA/TABLE/TABLE_DATAの処理中です -中略- SYSTEM.SYS_EXPORT_FULL_01に設定されたダンプ・ファイルは次のとおりです: /u01/tpump/expdp_all.dmp ジョブ"SYSTEM"."SYS_EXPORT_FULL_01"が11:31:19で正常に完了しました ===== $ expdp system/pass tables=TEST_TBL dumpfile=TEST_DIR:expdp_tbl.dmp logfile= TEST_DIR:expdp_tbl.log ===== "SYSTEM"."SYS_EXPORT_TABLE_01"を起動しています: system/******** tables=TEST_TBL dumpfile=TEST_DIR:expdp_tbl.dmp logfile= BLOCKSメソッドを使用して見積り中です... BLOCKSメソッドを使用した見積り合計: 0 KB ORA-39166: オブジェクトSYSTEM.TEST_TBLが見つかりません。 ORA-31655: ジョブに対してデータまたはメタデータ・オブジェクトが選択されていません ジョブ"SYSTEM"."SYS_EXPORT_TABLE_01"が完了しましたが、2エラーが11:33:54で発生しています ===== ●impdp実行 $ impdp system/pass dumpfile=TEST_DIR:expdp_all.dmp logfile= TEST_DIR:impdp_all.log ===== マスター表"SYSTEM"."SYS_IMPORT_FULL_01"は正常にロード/アンロードされました "SYSTEM"."SYS_IMPORT_FULL_01"を起動しています: system/******** dumpfile=expdp_dir:expdp_all.dmp logfile= full=y オブジェクト型DATABASE_EXPORT/TABLESPACEの処理中です ORA-31684: オブジェクト型TABLESPACE:"UNDOTBS1"はすでに存在します ORA-31684: オブジェクト型TABLESPACE:"TEMP"はすでに存在します ORA-31684: オブジェクト型TABLESPACE:"USERS"はすでに存在します ORA-39083: オブジェクト型TABLESPACEの作成が次のエラーで失敗しました: ORA-01119: データベース・ファイル'+DATA/testdb/datafile/tblsp1'の作成中にエラーが発生しました。 ORA-17502: ksfdcre:4 ファイル+DATA/testdb/datafile/tblsp1の作成に失敗しました ORA-15005: name "testdb/datafile/tblsp1" is already used by an existing alias -中略- ※以下のORAエラーが多数発生 例:ORA-31684: オブジェクト型TABLESPACE:"UNDOTBS1"はすでに存在します 例:ORA-39151: 表"SYSTEM"."REPCAT$_PRIORITY_GROUP"が存在します。スキップのtable_exists_actionのため、すべての依存メタデータおよびデータはスキップされます 例:ORA-39111: 依存オブジェクト型OBJECT_GRANT:"SYSTEM"はスキップされ、ベース・オブジェクト型VIEW:"SYSTEM"."SCHEDULER_PROGRAM_ARGS"はすでに存在します -中略- オブジェクト型DATABASE_EXPORT/SCHEMA/TABLE/CONSTRAINT/REF_CONSTRAINTの処理中です オブジェクト型DATABASE_EXPORT/SCHEMA/TABLE/STATISTICS/TABLE_STATISTICSの処理中です オブジェクト型DATABASE_EXPORT/SCHEMA/TABLE/POST_TABLE_ACTIONの処理中です オブジェクト型DATABASE_EXPORT/SCHEMA/TABLE/TRIGGERの処理中です オブジェクト型DATABASE_EXPORT/SCHEMA/POST_SCHEMA/PROCACT_SCHEMAの処理中です オブジェクト型DATABASE_EXPORT/AUDITの処理中です ジョブ"SYSTEM"."SYS_IMPORT_FULL_01"が完了しましたが、146エラーが20:14:48で発生しています =====

  • [MySQL]LOAD DATA INFILE一部レコードがスキップさ

    [MySQL]LOAD DATA INFILE一部レコードがスキップされてしまう。 いつもお世話になっております。selfesteemです。 今回はMySQLについての質問です。 仕事である機関が提供するデータをMySQLで扱うのですが、上手くいかなくて困っています。 テキスト形式での提供で、読み込み用スクリプトが付属していました。 LOAD DATA LOCAL INFILE "ファイル名" INTO TABLE "テーブル名" ~ で読み込むのですが、一部の行がスキップされてしまいます。 Query OKとは出てきているのですが、すべてのレコードがどうしてもインポートできず、 Skipped: ~ のようにスキップされた旨のメッセージが表示されています。 いろいろ試行錯誤してみたのですが、どこに問題があるのかいまいちつかめないでいます。 このLOAD DATA INFILE~で読み込む場合にスキップされるケースというのはどのような場合が考えられるのでしょうか? また、何行目がスキップされたのかや、スキップされた理由を詳しく調べることはできますでしょうか? 無知ですみませんが、本当に困っているので教えていただけると助かります。 よろしくお願いいたします。

    • ベストアンサー
    • MySQL
  • Oracle10g Enterprise Managerが開かない。

    こんにちわ。 いまOracle10gを触っている者です。 そこでEnterprise Managerを開こうと思って, IEのアドレスバーに"http://localhost:xxxx/em/console/database/" と入力しました。 先週まではEnterprise Managerが起動していたのに, 今日になって起動せずに,"ページを表示できません。" というメッセージが表示されてしまいます。 何か私がおかしなことをしたのでしょうけど, 原因が思い浮かびません。 原因になりそうなことを教えてください。 よろしくお願いします。

その他の回答 (1)

  • 回答No.1

EMなどからインポートしたことが無いので間違えているかも知れませんが、インポートする場合にインポートするテーブルが存在すると、デフォルトではエラー(スキップ)になります。 truncateではデータが切り捨てられますが、テーブルは残ったままです。 これが原因ではないでしょうか? テーブルを削除(drop table PERSON purge)などをしてから行えばできると思います。 #コマンドだとTABLE_EXISTS_ACTIONパラメータがあるんですが・・・。

共感・感謝の気持ちを伝えよう!

質問者からのお礼

表を削除するとインポートできました。 表が残ったままだとインポートできないのですね。 表を残したままインポートするコマンド等はありますでしょうか? ありがとうございました。

関連するQ&A

  • ORACLEの無効な識別子ですのエラーについて

    Oracle+Javaアプリケーション開発(ソフトバンクパブリッシング)に 載っているサンプルを実行しようとしているのですが、 下記実行結果により、エラーが出現して困っている次第です。 回答のほどよろしくお願い致します。 <エラー内容> java.sql.SQLException: ORA-00904: "TIGER": 無効な識別子です。という例外が発生しました <準備> CREATE TABLE MANAGER ( 個人コード CHAR(10), パスワード CHAR(10), 名前 VARCHAR2(40) ) PCTFREE 10 MAXTRANS 255 TABLESPACE USERS STORAGE(INITIAL 64K MINEXTENTS 1 MAXEXTENTS 2147483645 BUFFER_POOL DEFAULT) NOCACHE LOGGING / 1. <LoginJSP1.jsp>でuseridとpasswordを設定しています <form method="POST" name="login" action="/Sample/servlet/LoginSvlt2"> 個人コード <input type="text" name="userid" value="<%=userid%>"><br> パスワード <input type="password" name="password" value="<%=password%>"><br> 2. <LoginSvlt2> String userid = request.getParameter("userid"); String password = request.getParameter("password"); try{ connection = DriverManager.getConnection //↓利用するデータベースの設定により変更を行う ("jdbc:oracle:thin:@localhost:1521:XE","scott","tiger"); Statement statement = connection.createStatement(); String query = "select EMPNO,PASSWORD,ENAME from EMP where ENPNO = " + userid + " and PASSWORD = " + password; <objectbrowserで実行した結果> ORA-01740 識別子に二重引用符がありません select 個人コード,パスワード,名前 from MANAGER where 個人コード = " + userid + " and パスワード = " + password 以下のSQLを単体で実行するとうまくいきます。 select 個人コード,パスワード,名前 from MANAGER where 個人コード =1 and パスワード = 1

  • php オブジェクトデータ内の配列にアクセスしたい

    失礼します。 phpでのオブジェクトデータ内の配列にアクセスしたいのですが、うまくいきません。 下記(phpunit)のtitle配列内データにアクセスする際にどういった表記をすれば良いのでしょうか? ご教授宜しくお願い致します。 object(PHPUnit_Extensions_Database_DataSet_DefaultTable)#334 (2) { ["tableMetaData":protected] => object(PHPUnit_Extensions_Database_DataSet_DefaultTableMetaData)#331 (2) { ["columns":protected] => array(2) { [0]=> string(2) "id" [1]=> string(5) "title" } ["primaryKeys":protected] => array(0) { } ["tableName":protected] => string(14) "hogehoge" } ["data":protected] => array(1) { [0]=> array(3) { ["id"]=> string(2) "1" ["title"]=> string(13) "test_titleです。" } } ["other":"PHPUnit_Extensions_Database_DataSet_AbstractTable":private] => NULL }

    • ベストアンサー
    • PHP
  • JTableで値を右寄せ表示する方法

    やりたい事はJTableのカラム内の値を右寄せにしたいだけです。 APIマニュアルのJTableの項の「How to use table」を読むと、 その方法は、設定する値をObjectではなく、Integerオブジェクトに するだけで、右寄せになるとの事。早速やってみたところ、Integer あるいはFloat(多分Double)オブジェクトでも確かに右寄せになりました。 これはこれでいいのですが、それでは、Stringを右寄せにしたい時は どうするの?という疑問が湧きました。どなたか、ご存知の方いらっしゃいますか? また、そういうメソッドが別にあるのならば教えてください。

    • ベストアンサー
    • Java
  • 配列宣言に変数を使えるのでしょうか?

    いつもお世話になっております。先日(10/29)も、Javaの項で教えていただき、プログラムを進めていたのですが、配列のところでまた行き詰まってしまいました。どなたか教えていただけないでしょうか。 (データベースは MySQL を使っています) out.println("<form name=\"hiro1\">"); out.println("<input type=\"radio\" name=\"hiro2\" value=\"A\" onClick=\"hiro3\">A    <input type=\"radio\" name=\"hiro2\" value=\"B\" onClick=\"hiro3\">B"); out.println("<select name=\"hiro4\">"); out.println("</select>"); ResultSet rs1=st1.executeQuery("select hiro from hirotable"); While(rs1.next()){ String hirodata=rs1.getString(1); out.println("<input type=\"hidden\" name=\"hiro5\" value="+hirodata+">); 考え方としては、ラジオボタン(hiro2)のところで、A か B を選択(クリック)することによって、イベントを発生させ(ラジオボタンとセレクトメニューの値は直接には関係しません)、データベースから取得した値(変数 hirodata または hiro5)をファンクション(function hiro3)にもってゆき、そこでセレクトメニュー(hiro4)の値(変数 hirodata またはhiro5)を作ってセレクトメニューに入れたいと思うのです。(セレクトメニューの代わりにテキストボックスで試したら値がひとつ入力され、表示されました)セレクトメニューの場合は、配列が必要になると思いますが、ファンクションの上のところで配列の宣言をするときに、ひとつひとつ記述するのではなく、変数(hirodata または hiro5)を使うことは可能でしょうか?

  • アクセス VBA サブフォルダからインポート

    アクセス・エクセル2010を使用しています。 以下の作業を実行したいと考えていますが、初心者につき、ご教示ください! 1.ダイアログを表示させ、フォルダを指定したい:トップパス設定 2.1で指定したトップパス内(サブフォルダを含む)にある  一定のネーミングファイルを範囲を指定してインポート(マージ)したい 動作条件) a.トップパス:D:\test ←ダイアログで指定したい(可能であれば・・次回の動作時に覚えさせておきたい) b.インポートファイルの名称:*_3年目.xls(語尾に「_3年目」と付くエクセル) ←フォームのテキストボックスで設定したい c.インポート範囲:B7:Z56 ←変動するので、フォームのテキストボックスで設定したい 現在、同じパス内にあるエクセルファイルを指定した範囲でテーブルにインポートする というところまでは、ご親切な方にご教示いただき、以下にてうまく動いています。 初心者のため、どこをどう変更・設定すると 上記のような動きにできるのかがわかっておりませんため、 ご教示いただけないでしょうか。 ※[frm]![txt_範囲]:範囲指定をするフォームのテキストボックス  仮テーブル:取り込み時に作成するマージ用テーブル Dim f As Object Dim b As Object Dim c As Object Dim d As Object Dim t As Variant Dim e As Object Dim p As String Dim i As Long Dim sSql As String Dim x As String Set e = CreateObject("Excel.Application") t = e.GetOpenFilename("Excel Files (*.xls*), *.xls*") If t = False Then Exit Sub x = Forms![frm]![txt_範囲] Set f = CreateObject("Scripting.FileSystemObject") p = f.GetParentFolderName(t) Set d = f.GetFolder(p) Set b = d.Files On Error Resume Next sSql = "DROP TABLE 仮テーブル " CurrentProject.Connection.Execute CommandText:=sSql sSql = "DROP TABLE 一時テーブル " CurrentProject.Connection.Execute CommandText:=sSql On Error GoTo 0 For Each c In b If LCase(f.GetExtensionName(c)) Like "xls*" Then If i = 0 Then DoCmd.TransferSpreadsheet acImport, , "仮テーブル", c, True, x sSql = "ALTER TABLE 仮テーブル ADD COLUMN ファイル名 VarChar(50);" CurrentProject.Connection.Execute CommandText:=sSql sSql = "UPDATE 仮テーブル SET ファイル名='" & f.GetFileName(c) & "';" CurrentProject.Connection.Execute CommandText:=sSql i = i + 1 Else On Error Resume Next sSql = "DROP TABLE 一時テーブル " CurrentProject.Connection.Execute CommandText:=sSql On Error GoTo 0 DoCmd.TransferSpreadsheet acImport, , "一時テーブル", c, True, x sSql = "ALTER TABLE 一時テーブル ADD COLUMN ファイル名 VarChar(50);" CurrentProject.Connection.Execute CommandText:=sSql sSql = "UPDATE 一時テーブル SET ファイル名='" & f.GetFileName(c) & "';" CurrentProject.Connection.Execute CommandText:=sSql sSql = "INSERT INTO 仮テーブル SELECT * FROM 一時テーブル" CurrentProject.Connection.Execute CommandText:=sSql i = i + 1 End If End If Next On Error Resume Next sSql = "DROP TABLE 一時テーブル " CurrentProject.Connection.Execute CommandText:=sSql On Error GoTo 0 e.Quit Set e = Nothing MsgBox "データがインポートされました。" End Sub 尚、せっかく教えていただいたコードではありますが、 上記コードを用いては思った動作にならないのであれば、 新しい手法で教えていただくんでも構いません。 是非、よろしくお願いします!!

  • ユーザーコントロール(OCX)のオブジェクト名

    2点わからない点がありますのでよろしくお願いします。 (1)ユーザーコントロールのオブジェクト名を引数として使用したいのですが エラーが発生し困っています。どのようにしたらいいのでしょうか? ユーザ-コントロールのオブジェクト名:UserControl1 ☆でエラーが発生する「オブジェクトはこのプロパティまたはメソッドをサポートしていません。」 ※関数aはDLLとなっておりどうしてもオブジェクト型で渡さなければなりません。 Private Sub Command1_Click() Call a(Me) End Sub ===DLL関数:a=== オブジェクト名とボタン名をINIファイルに書き込む処理 =========== Private Sub a(prmObj As Object) Dim strMsg As String strMsg = prmObj.Name ・・・☆ : : : End Sub (2)String型からObject型に変換するのは可能でしょうか? INIファイルから"UserControl1.Command.Enable = False"というString型のデータを読込み、 ボタンを有効・無効設定するという事が処理がしたいのですが何かいい方法がありましたら教えてください。 Private Sub UserControl_Initialize() Dim a As Object Dim b as String 'INIファイルから取得 Dim c as String       'INIファイルから取得 b = "UserControl1.Command1" c = "False"   Set a = Me.Controls(b) If c = "False" then a.Enable = False else a.Enable = True End If End Sub

  • create tablespace 時の内容確認

    Create Tablespaceを行った時の内容を知りたいと思います。 select DBMS_METADATA.GET_DDL('TABLESPACE','名称') from dual とした所、 ORA-31600:入力値TABLESPACE(パラメータOBJECT_TYPE、ファンクションGET_DDL)が無効です。 と出ます。 TABLEやINDEXはこの方法で見れましたが、 TABLESPACEはこの方法ではダメでしょうか? Create Tablespaceを行った時の内容を知る方法はあるのでしょうか? (ちなみにCreate USER を行った時の内容を知る方法もあるのでしょうか?)

  • エクセルのCSV形式の複数ブックを一括でインポートしたい

    あるフォルダ内にある「複数ブック(CSV形式)」をエクセルに一括でインポートしたいのです。フォルダ内にある複数のエクセルブックの名前はばらばですが、形式だけが全て同じです。 Book1 A B C 1 1 1 Book2 A B C 2 2 2 Book3 A B C 3 3 3 ↑  2つブックがあって最終的には・・・・ Book5 A B C 1 1 1 2 2 2 3 3 3 ↑ こうしたいです。複数ブックの一行目以下のデータ全てをひとつのものにまとめたいのです。(全ての複数のCSVブックは一行目は同じです。2行目以降を追加するみたいな感じです。) いろいろと調べて作ってみたのですが、「デバック」??で黄色くなって全く上手く行きません。 ご存知であれば是非教えてください。 ・~・・~・・~・・~・・~・・~・・~・・~・・~・・~・ Sub フォルダ指定連結() Dim myShell As Object Dim myFS As Object, myFile As Object Dim myName As String, myPath As String Dim myLine As String, newStr As String Set myShell = CreateObject("Wscript.Shell") myPath = myShell.Specialfolders("Desktop") & "\aaa\" Set myShell = Nothing Set myFS = CreateObject("Scripting.FileSystemObject") myName = Dir(myPath & "\*.csv\") Do While myName <> "" Set myFile = myFS.OpenTextFile(myPath & "\" & myName, 1) myFile.ReadLine '1行目スキップ Do Until myFile.AtEndOfStream myLine = myFile.ReadLine newStr = newStr & myLine & vbCrLf Loop myFile.Close myName = Dir() Loop Set myFile = myFS.CreateTextFile("C:\test.csv\", True) myFile.Write newStr myFile.Close Set myFS = Nothing Set myFile = Nothing End Sub ・~・・~・・~・・~・・~・・~・・~・・~・・~・・~・ これが教えていただいたり、自分で修正を加えたりしたぶんですが・・・。 環境はウィンドウズXPで2002です。

  • oracle10gと9iの違いについて

    お世話様です。 最近、DBサーバをoracle9iからoracle10gに変えることになったのですが、 oracle9iで select LEVEL, 項目1, 項目2 FROM テーブル1 のSQLが動いていたのですが、 oracle10gでは、このSQLが動かなくなり、 connect by区を指定するようにエラーが出てくるようになってしまいました。 oracleのバージョンによって、動かなくなると言うことはあるのでしょうか? それともORACLEの設定を変更すると動くようになるのでしょうか。 ご教授よろしくお願い致します。

  • Oracle 10gについて

    Oracle 10gについて、良く判る本やサイトがあればご紹介下さい。