[Seasar-user:15676] Re: [DBFlute]ReplaceSchemaがシノニムをDROP TABLEしようとする。

kubo [E-MAIL ADDRESS DELETED]
2008年 9月 5日 (金) 20:10:05 JST


久保です。

西山さん、ありがとうございます。
情報提供ありがとうございます!

「Drop Table シノニム」で落ちてしまう件は、

> 取り急ぎ、こちらの件だけ対応してました。
> http://dbflute.sandbox.seasar.org/download/dbflute/dbflute-0.8.0.zip
> (SNAPSHOTとなります)
> でSYNONYMはDropできます。

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


>> 主キーや外部キーが取得できないと聞いておりましたが、
>> http://d.hatena.ne.jp/jflute/20080822/1219377402
>> 主キーや外部キー意外のカラム情報も全く取得できない
>> 状態でしょうか?
>
> カラム情報が全く取得できていません。
> project-schema.xmlの、スキーマの中が空です。

そうですか。こちらでは再現ができていないのですが、
Oracleのバージョン違いの問題かもしれませんね・・・


> エレメント・タイプ "table" のコンテンツが不完全です、"
> (column+,(foreign-key|index|unique|id-method-parameter)*)" と一致しなければなりません。
>  project-schema-artap.xml artap/mydbflute/dbflute-0.7.8/schema
> 行 4
> XML 問題
>
> Pleiadesを使用していますので、日本語化されています。

ありがとうございます。


> A.
> ほとんどはテーブルですが、別DBのデータを更新する必要があり、 一部のテーブルだけ、DBリンク+シノニムでアクセスしようと思い ました。
>
> B.
> 混ざります。可能ならば、シノニムと普通のテーブルのFKも張ろう と考えております。
>

了解しました。ありがとうございます。
additionalPrimaryKeyMapとadditionalForeignKeyMapで
対応できるかと思います。

#
# どうしてもクリアしなければならない問題は
# カラム情報が取得できてないところですね。。。
#

2008/9/5 西山 はじめ <[E-MAIL ADDRESS DELETED]>:
> お世話になっております。
> 西山です。
>
> インラインで失礼します。
>
>>> シノニムを、「DROP TABLE シノニム名」が実行され処理がそこで
>>> ストップしてしまいます。
>>
>> 具体的に発生する例外を教えて頂けますでしょうか?
>
> 長いので添付にいたします。
>
>>> 実行環境ではシノニムのカラム情報が取得できていないらしく、
>>> project-schema.xml、
>>> bsentity.Bs~クラスに、カラム情報が全くありませんでした。
>>
>> 主キーや外部キーが取得できないと聞いておりましたが、
>> http://d.hatena.ne.jp/jflute/20080822/1219377402
>> 主キーや外部キー意外のカラム情報も全く取得できない
>> 状態でしょうか?
>
> カラム情報が全く取得できていません。
> project-schema.xmlの、スキーマの中が空です。
>
>>> あと、些細なことですがproject-schema.xmlに type="SYNONYM"が
>>> あると、DTDと内容が合わなくなり、Eclipse上でエラーとなりました。
>>
>> なるほど、これは想定しませんでした。
>> DTD(どう直せば良いか...)確認します。
>>
>
> エレメント・タイプ "table" のコンテンツが不完全です、"
> (column+,(foreign-key|index|unique|id-method-parameter)*)" と一致しなければなりません。
>  project-schema-artap.xml artap/mydbflute/dbflute-0.7.8/schema
> 行 4
> XML 問題
>
> Pleiadesを使用していますので、日本語化されています。
>
>> また、シノニムの利用ですが、
>> 具体的にどのような用途で利用されているか
>> 参考までに教えてもらってもよろしいでしょうか?
>>
>> A. DBアクセスは全てシノニム経由を想定している?
>> B. テーブルアクセスとシノニムアクセスを混ざる?
>> など
>
> A.
> ほとんどはテーブルですが、別DBのデータを更新する必要があり、 一部のテーブルだけ、DBリンク+シノニムでアクセスしようと思い ました。
>
> B.
> 混ざります。可能ならば、シノニムと普通のテーブルのFKも張ろう と考えております。
>
>
>> 2008/9/5 西山 はじめ <[E-MAIL ADDRESS DELETED]>:
>>>
>>> お世話になっております。
>>> 西山です。
>>>
>>> 申し訳ありません。追加です。
>>> 実行環境ではシノニムのカラム情報が取得できていないらしく、
>>> project-schema.xml、
>>> bsentity.Bs~クラスに、カラム情報が全くありませんでした。
>>>
>>> 以上よろしくお願いいたします。
>>>
>>> あと、些細なことですがproject-schema.xmlに type="SYNONYM"が
>>> あると、DTDと内容が合わなくなり、Eclipse上でエラーとなりました。
>>>
>>> [2008/09/05 15:45] 西山 はじめ さんは書きました。:
>>>>
>>>> お世話になっております。
>>>> 西山と申します。
>>>>
>>>> databaseInfoMapに
>>>>      ; propertiesMap= map:{includeSynonyms=true}
>>>> build.propertiesに
>>>> torque.database.type.list = list:{TABLE;VIEW;SYNONYM}
>>>> を設定して、replace-shema.batを実行したところ、
>>>> シノニムを、「DROP TABLE シノニム名」が実行され処理がそこで
>>>> ストップしてしまいます。
>>>>
>>>> jdbc.bat、generate.batではエラーとなりません。
>>>>
>>>> 仕様バージョン・環境は以下のとおりです。
>>>>  DBFlute 0.7.9
>>>>  Oracle 9.2.0.1
>>>>
>>>> 以上よろしくお願いいたします。
>>>>
>>>
>>> --
>>> ++++++++++++++++++++++++++++++++++++++++++++++++++++++++
>>> 株式会社フジミック システム開発センター ソフト開発2部
>>> 西山 創
>>> [E-mail]:[E-MAIL ADDRESS DELETED]
>>>
>>> 〒140-0002 品川区東品川3-32-42 フジテレビ別館7F
>>> [TEL]:03-5495-1060
>>> ++++++++++++++++++++++++++++++++++++++++++++++++++++++++
>>>
>>> _______________________________________________
>>> Seasar-user mailing list
>>> [E-MAIL ADDRESS DELETED]
>>> https://ml.seasar.org/mailman/listinfo/seasar-user
>>>
>>
>>
>>
>
>
> --
> ++++++++++++++++++++++++++++++++++++++++++++++++++++++++
> 株式会社フジミック システム開発センター ソフト開発2部
>  西山 創
> [E-mail]:[E-MAIL ADDRESS DELETED]
>
> 〒140-0002 品川区東品川3-32-42 フジテレビ別館7F
> [TEL]:03-5495-1060
> ++++++++++++++++++++++++++++++++++++++++++++++++++++++++
>
> 2008-09-05 18:57:17,131 [main] INFO  (DfTableHandler#logDatabaseTypes():141)
> - $ DatabaseTypes are 'TABLE - VIEW - SYNONYM'
> 2008-09-05 18:57:17,381 [main] INFO
>  (DfSchemaInitializerJdbc#callbackDropTableByJdbc():236) - drop table ATM01
> 2008-09-05 18:57:17,396 [main] ERROR (DfAbstractTask#execute():88) -
> execute() threw the exception!
> java.lang.RuntimeException: java.sql.SQLException: ORA-00942:
> �\�������r���[���������������B
>
>        at
> org.seasar.dbflute.helper.jdbc.schemainitializer.DfSchemaInitializerJdbc.callbackDropTableByJdbc(DfSchemaInitializerJdbc.java:257)
>        at
> org.seasar.dbflute.helper.jdbc.schemainitializer.DfSchemaInitializerJdbc.dropTable(DfSchemaInitializerJdbc.java:211)
>        at
> org.seasar.dbflute.helper.jdbc.schemainitializer.DfSchemaInitializerJdbc.initializeSchema(DfSchemaInitializerJdbc.java:83)
>        at
> org.seasar.dbflute.task.replaceschema.DfCreateSchemaTask.initializeSchema(DfCreateSchemaTask.java:74)
>        at
> org.seasar.dbflute.task.replaceschema.DfCreateSchemaTask.doExecute(DfCreateSchemaTask.java:51)
>        at
> org.seasar.dbflute.task.bs.DfAbstractTask.execute(DfAbstractTask.java:83)
>        at
> org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:288)
>        at sun.reflect.GeneratedMethodAccessor5.invoke(Unknown Source)
>        at
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
>        at java.lang.reflect.Method.invoke(Method.java:597)
>        at
> org.apache.tools.ant.dispatch.DispatchUtils.execute(DispatchUtils.java:105)
>        at org.apache.tools.ant.Task.perform(Task.java:348)
>        at org.apache.tools.ant.Target.execute(Target.java:357)
>        at org.apache.tools.ant.Target.performTasks(Target.java:385)
>        at
> org.apache.tools.ant.Project.executeSortedTargets(Project.java:1329)
>        at org.apache.tools.ant.Project.executeTarget(Project.java:1298)
>        at
> org.apache.tools.ant.helper.DefaultExecutor.executeTargets(DefaultExecutor.java:41)
>        at org.apache.tools.ant.Project.executeTargets(Project.java:1181)
>        at org.apache.tools.ant.Main.runBuild(Main.java:698)
>        at org.apache.tools.ant.Main.startAnt(Main.java:199)
>        at org.apache.tools.ant.launch.Launcher.run(Launcher.java:257)
>        at org.apache.tools.ant.launch.Launcher.main(Launcher.java:104)
> Caused by: java.sql.SQLException: ORA-00942: �\�������r���[���������������B
>
>        at
> oracle.jdbc.driver.SQLStateMapping.newSQLException(SQLStateMapping.java:74)
>        at
> oracle.jdbc.driver.DatabaseError.newSQLException(DatabaseError.java:110)
>        at
> oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:171)
>        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.executeInternal(OracleStatement.java:1770)
>        at
> oracle.jdbc.driver.OracleStatement.execute(OracleStatement.java:1739)
>        at
> oracle.jdbc.driver.OracleStatementWrapper.execute(OracleStatementWrapper.java:298)
>        at
> org.seasar.dbflute.helper.jdbc.schemainitializer.DfSchemaInitializerJdbc.callbackDropTableByJdbc(DfSchemaInitializerJdbc.java:238)
>        ... 21 more
>
> _______________________________________________
> Seasar-user mailing list
> [E-MAIL ADDRESS DELETED]
> https://ml.seasar.org/mailman/listinfo/seasar-user
>
>


Seasar-user メーリングリストの案内