Oracleからインポートできません

Help
hajimeni
2009-09-14
2013-05-13
  • hajimeni
    hajimeni
    2009-09-14

    はじめまして。
    ERMasterを使わせていただいております。

    「既存のDBからインポート」してドキュメントを作成したいと思っております。

    OracleDBからテーブルをインポートしようとすると、エラーが発生しインポートできません。
    内容は以下の通りですが、3パターンくらいありました。

    環境は全部違うのですが、いずれもEclipse3.5を使用しています。

    #1 空のダイアログが表示される。<br/>
    DB:Oracle9i

    !ENTRY org.insightech.er 4 0 2009-09-14 17:07:58.947
    !MESSAGE
    !STACK 0
    java.lang.NullPointerException
    at org.insightech.er.db.impl.oracle.OracleTableImportManager.cashColumnData(OracleTableImportManager.java:60)
    at org.insightech.er.db.impl.oracle.OracleTableImportManager.importSynonyms(OracleTableImportManager.java:283)
    at org.insightech.er.editor.model.dbimport.ImportFromDBManagerBase.run(ImportFromDBManagerBase.java:155)
    at org.eclipse.jface.operation.ModalContext$ModalContextThread.run(ModalContext.java:121)

    #2 「ORA-02021: リモート・データベースに対するDDL操作が無効です。」と表示される。<br/>
    DB:Oracle11g

    !STACK 0
    java.sql.SQLSyntaxErrorException: ORA-02021: リモート・データベースに対するDDL操作が無効です。

    at oracle.jdbc.driver.SQLStateMapping.newSQLException(SQLStateMapping.java:91)
    at oracle.jdbc.driver.DatabaseError.newSQLException(DatabaseError.java:112)
    at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:173)
    at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:455)
    at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:413)
    at oracle.jdbc.driver.T4C8Oall.receive(T4C8Oall.java:1030)
    at oracle.jdbc.driver.T4CStatement.doOall8(T4CStatement.java:183)
    at oracle.jdbc.driver.T4CStatement.executeForRows(T4CStatement.java:936)
    at oracle.jdbc.driver.OracleStatement.doExecuteWithTimeout(OracleStatement.java:1222)
    at oracle.jdbc.driver.OracleStatement.executeUpdateInternal(OracleStatement.java:1706)
    at oracle.jdbc.driver.OracleStatement.executeUpdate(OracleStatement.java:1674)
    at oracle.jdbc.driver.OracleStatementWrapper.executeUpdate(OracleStatementWrapper.java:274)
    at oracle.jdbc.OracleDatabaseMetaData.getIndexInfo(OracleDatabaseMetaData.java:3814)
    at org.insightech.er.editor.model.dbimport.ImportFromDBManagerBase.getIndexes(ImportFromDBManagerBase.java:429)
    at org.insightech.er.db.impl.oracle.OracleTableImportManager.getIndexes(OracleTableImportManager.java:228)
    at org.insightech.er.editor.model.dbimport.ImportFromDBManagerBase.importTable(ImportFromDBManagerBase.java:355)
    at org.insightech.er.db.impl.oracle.OracleTableImportManager.importSynonyms(OracleTableImportManager.java:285)
    at org.insightech.er.editor.model.dbimport.ImportFromDBManagerBase.run(ImportFromDBManagerBase.java:155)
    at org.eclipse.jface.operation.ModalContext$ModalContextThread.run(ModalContext.java:121)

    #3 シーケンスを取込もうとしたときに「ORA-00904:”OWNER”:無効な識別子です。」と表示される。<br/>
    テーブルオンリーならばインポートできる<br/>
    DB:Oracle10g

    !STACK 0
    java.sql.SQLSyntaxErrorException: ORA-00904: "OWNER": 無効な識別子です。

    at oracle.jdbc.driver.SQLStateMapping.newSQLException(SQLStateMapping.java:91)
    at oracle.jdbc.driver.DatabaseError.newSQLException(DatabaseError.java:112)
    at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:173)
    at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:455)
    at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:413)
    at oracle.jdbc.driver.T4C8Oall.receive(T4C8Oall.java:1030)
    at oracle.jdbc.driver.T4CPreparedStatement.doOall8(T4CPreparedStatement.java:194)
    at oracle.jdbc.driver.T4CPreparedStatement.executeForDescribe(T4CPreparedStatement.java:785)
    at oracle.jdbc.driver.T4CPreparedStatement.executeMaybeDescribe(T4CPreparedStatement.java:860)
    at oracle.jdbc.driver.OracleStatement.doExecuteWithTimeout(OracleStatement.java:1186)
    at oracle.jdbc.driver.OraclePreparedStatement.executeInternal(OraclePreparedStatement.java:3381)
    at oracle.jdbc.driver.OraclePreparedStatement.executeQuery(OraclePreparedStatement.java:3425)
    at oracle.jdbc.driver.OraclePreparedStatementWrapper.executeQuery(OraclePreparedStatementWrapper.java:1490)
    at org.insightech.er.db.impl.oracle.OracleTableImportManager.importSequence(OracleTableImportManager.java:176)
    at org.insightech.er.editor.model.dbimport.ImportFromDBManagerBase.importSequences(ImportFromDBManagerBase.java:236)
    at org.insightech.er.editor.model.dbimport.ImportFromDBManagerBase.run(ImportFromDBManagerBase.java:150)
    at org.eclipse.jface.operation.ModalContext$ModalContextThread.run(ModalContext.java:121)

    以上よろしくお願いいたします。

     
  • はじめまして。 ERMasterをお使いいただきありがとうございます。

    不具合のご報告ありがとうございます。
    調査、対応が完了いたしましたら、ご報告させていただきますので
    しばらくお待ちいただけますでしょうか。
    宜しくお願いいたします。

     
  • hajimeni
    hajimeni
    2009-09-16

    了解いたしました。

    よろしくお願いいたします。

     
  • 1.0.0.v20090923-1441
    で3点とも修正しました。

    1点目に関しては、エラーはでなくなったと思うのですが、
    もしかしたら、カラムの情報が正確にインポートされないテーブルが
    あるかもしれません。
    その場合は、教えてもらえると助かります。

     
  • hajimeni
    hajimeni
    2009-09-24

    対応、ありがとうございました。
    エラーは出なくなりました。

    以下、それぞれ報告させていただきます。

    #1、#2

    どうやらエラーの原因はDBリンクのシノニムをテーブルとして取込もうとしていたからのようです。
    ビューが「DBリンク先のテーブルのシノニム」を参照しています。

    インポート前のテーブルリストには、シノニムは出てきません。

    しかし、シノニムは全部テーブル扱いとして取込んでしまいます。(選択したテーブルに関わらず)

    また、シノニムとして取込んだ情報はカラム情報がありません。
    これは、DBリンク先のテーブル情報ですので、情報は無くても構いません。(通常の方法では取得できなかった覚えがあります)

    #3

    シーケンスは正常に取込めました。

    追加で1点だけですが、要望となってしまい申し訳ありませんがビューの情報もテーブル同様にER図の中に表示していただけないでしょうか。(カラム名、カラム情報など)

    以上よろしくお願いいたします。

     
  • ご報告ありがとうございます。

    シノニムの扱いに関しては、まだまだ問題を抱えていると認識しています。

    Oracle では必須の機能だと思いますので、なんとかうまい具合にしていこうと
    思います。

    ビューの扱いに関しても、ER図の中に表示できないのはいかがなものか

    とは思いますのでなんとかしたいとは思ってはいるのですが。。。