[Seasar-user:18395] Re: [DBFlute] テーブル無しでプロシージャを扱いたい場合は

西山 はじめ [E-MAIL ADDRESS DELETED]
2009年 8月 28日 (金) 12:39:17 JST


お世話になっております。
西山です。

環境は最初のメールの通りですので、物理的に別DBです。
同じDBで別スキーマならよかったのですが。

あと、additionalTableに定義しただけでは、jdbc.batは通りませ 
んでした。

以上よろしくお願いいたします。
=============================エラー内容=====================
[torque-jdbc-transform] A table was NOT FOUND in the schema!
[torque-jdbc-transform]
[torque-jdbc-transform] [Advice]
[torque-jdbc-transform] Please confirm the database 
connection settings.
[torque-jdbc-transform] If you've not created the schema 
yet, please create it.
[torque-jdbc-transform] You can create easily by using 
replace-schema.
[torque-jdbc-transform] Set up ./playsql/replace-schema.sql 
and execute ReplaceSchema task.

=============================スタックトレース===============
[torque-jdbc-transform] * * * * * * * * * */
[torque-jdbc-transform]         at 
org.apache.torque.task.TorqueJDBCTransformTask.throwTableNotFoundException(TorqueJDBCTransformTask.java:480)
[torque-jdbc-transform]         at 
org.apache.torque.task.TorqueJDBCTransformTask.generateXML(TorqueJDBCTransformTask.java:246)
[torque-jdbc-transform]         at 
org.apache.torque.task.TorqueJDBCTransformTask.doExecute(TorqueJDBCTransformTask.java:184)
[torque-jdbc-transform]         at 
org.seasar.dbflute.task.bs.DfAbstractTask.execute(DfAbstractTask.java:83)
[torque-jdbc-transform]         at 
org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:288)
[torque-jdbc-transform]         at 
sun.reflect.GeneratedMethodAccessor5.invoke(Unknown Source)
[torque-jdbc-transform]         at 
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
[torque-jdbc-transform]         at 
java.lang.reflect.Method.invoke(Method.java:597)
[torque-jdbc-transform]         at 
org.apache.tools.ant.dispatch.DispatchUtils.execute(DispatchUtils.java:105)
[torque-jdbc-transform]         at 
org.apache.tools.ant.Task.perform(Task.java:348)
[torque-jdbc-transform]         at 
org.apache.tools.ant.Target.execute(Target.java:357)
[torque-jdbc-transform]         at 
org.apache.tools.ant.Target.performTasks(Target.java:385)
[torque-jdbc-transform]         at 
org.apache.tools.ant.Project.executeSortedTargets(Project.java:1329)
[torque-jdbc-transform]         at 
org.apache.tools.ant.Project.executeTarget(Project.java:1298)
[torque-jdbc-transform]         at 
org.apache.tools.ant.helper.DefaultExecutor.executeTargets(DefaultExecutor.java:41)
[torque-jdbc-transform]         at 
org.apache.tools.ant.Project.executeTargets(Project.java:1181)
[torque-jdbc-transform]         at 
org.apache.tools.ant.Main.runBuild(Main.java:698)
[torque-jdbc-transform]         at 
org.apache.tools.ant.Main.startAnt(Main.java:199)
[torque-jdbc-transform]         at 
org.apache.tools.ant.launch.Launcher.run(Launcher.java:257)
[torque-jdbc-transform]         at 
org.apache.tools.ant.launch.Launcher.main(Launcher.java:104)
[torque-jdbc-transform] 2009-08-28 12:34:47,869 INFO  -
[torque-jdbc-transform]
[torque-jdbc-transform] 
_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/

実行するには、何らかのテーブルが存在している必要がありそうです。



[2009/08/28 11:54] kubo さんは書きました。:
> 久保(jflute)です。
> 
> もし同じOracleの別スキーマの場合の補足ですが、
> 
> databaseInfoMap.dfpropにて
> 
> A. additionalSchemaListに別スキーマを指定
> 
> B. tableExceptListで別スキーマのテーブルを全て除外
>  ※権限的に参照できないのであれば除外の必要なし
> 
> という感じですね
> 
> 2009/8/28 kubo <[E-MAIL ADDRESS DELETED]>:
>> 久保(jflute)です。
>>
>> そうですね、とりあえずは
>> additionalTableでダミーテーブルを一個定義すれば
>> いけるかと思いますのでそれで回避お願いします。
>> (additionalTableの存在価値が新たに!?)
>>
>> 後は、その別DBというのが同じOracleでの別スキーマとか
>> であれば、additionalSchemaの機能でうまく調整すれば
>> ストアドだけ引っ張ってこれるかもしれません。
>> (その場合IN引数だけであれば外だしSQLで単に
>>  callしても良いかと思います。)
>>
>> 2009/8/28 西山 はじめ <[E-MAIL ADDRESS DELETED]>:
>>> お世話になっております。
>>> 西山です。
>>>
>>> ご回答ありがとうございます。
>>>
>>>> その別のDBの何かしら1テーブルだけ(そのプロシージャに関係する)
>>>> 自動生成して実行するようにして下さい。
>>> やはり、そうですか・・・
>>> 実は、別で作成されたDBに認証用のプロシージャが置いてあり、認
>>> 証はそれで行う必要があるとのことです。
>>>
>>>> (それともそのDBにはプロシージャしかなかったり?)
>>> テーブルも存在するでしょうが、それらに一切アクセスすることは
>>> なく、恐らく事前(本番環境でのテスト前)にその情報が手に入る
>>> ことはありません。
>>>
>>> そこで、テーブル情報とは関係無しにプロシージャが呼べれば、と
>>> 考えました。
>>>
>>> ダミーのテーブル定義をすれば実行できましたので、この方法で逃
>>> げようと思います。
>>>
>>>
>>> [2009/08/27 20:11] kubo さんは書きました。:
>>>> 久保(jflute)です。
>>>>
>>>> 西山さん、こんばんは
>>>>
>>>> その別のDBの何かしら1テーブルだけ(そのプロシージャに関係する)
>>>> 自動生成して実行するようにして下さい。
>>>> (それともそのDBにはプロシージャしかなかったり?)
>>>>
>>>> 2009/8/27 西山 はじめ <[E-MAIL ADDRESS DELETED]>:
>>>>> お世話になっております。
>>>>> 西山です。
>>>>>
>>>>> 今度の案件で、別DBの「プロシージャだけ」を実行する必要が出て
>>>>> きました。
>>>>> DBFluteでは、外だしSQLもプロシージャもBhvから実行しますの
>>>>> で、なんらかしらのテーブルが必要となる認識です。
>>>>>
>>>>> これを、テーブル無し(テーブルごとのBhv無し)で実行する方法
>>>>> や代替手段はありますでしょうか?
>>>>>
>>>>> 一応、project-schema-name.xmlを自力で作成してgenerateすれば
>>>>> 大丈夫そうですが、もし他の手段がありましたら教えてください。
>>>>>
>>>>> 大まかな環境は以下の通りです。
>>>>>
>>>>> Java
>>>>>  JDK1.5
>>>>> Seasar
>>>>>  2.4.39
>>>>> DBFlute
>>>>>  0.9.5.3
>>>>> データベース
>>>>>  DB-1:Oracle10g(メインで扱うDB)
>>>>>  DB-2:Oracle10g(数テーブル、データだけを参照)
>>>>>  DB-3:Oracle10g(プロシージャだけを利用)※
>>>>> (全て物理的に別のサーバーで、DBLINKは今のところ貼れない感じ
>>>>> です。)
>>>>>
>>>>> 以上よろしくお願いいたします。
>>>>>
>>>>> --
>>>>> ++++++++++++++++++++++++++++++++++++++++++++++++++++++++
>>>>> 株式会社フジミック
>>>>> システム開発センター ソフトウェア開発部
>>>>> 西山 創
>>>>> [E-mail]:[E-MAIL ADDRESS DELETED]
>>>>>
>>>>> 〒140-0002 東京都品川区東品川3-32-42 フジテレビ別館7階
>>>>> [TEL]:03-5495-1060
>>>>> ++++++++++++++++++++++++++++++++++++++++++++++++++++++++
>>>>>
>>>>> _______________________________________________
>>>>> Seasar-user mailing list
>>>>> [E-MAIL ADDRESS DELETED]
>>>>> https://ml.seasar.org/mailman/listinfo/seasar-user
>>>>>
>>>>
>>>>
>>>
>>> --
>>> ++++++++++++++++++++++++++++++++++++++++++++++++++++++++
>>> 株式会社フジミック
>>> システム開発センター ソフトウェア開発部
>>> 西山 創
>>> [E-mail]:[E-MAIL ADDRESS DELETED]
>>>
>>> 〒140-0002 東京都品川区東品川3-32-42 フジテレビ別館7階
>>> [TEL]:03-5495-1060
>>> ++++++++++++++++++++++++++++++++++++++++++++++++++++++++
>>>
>>> _______________________________________________
>>> Seasar-user mailing list
>>> [E-MAIL ADDRESS DELETED]
>>> https://ml.seasar.org/mailman/listinfo/seasar-user
>>>
> 
> 
> 


-- 
++++++++++++++++++++++++++++++++++++++++++++++++++++++++
株式会社フジミック 
        システム開発センター ソフトウェア開発部
 西山 創
[E-mail]:[E-MAIL ADDRESS DELETED]
 
〒140-0002 東京都品川区東品川3-32-42 フジテレビ別館7階
[TEL]:03-5495-1060
++++++++++++++++++++++++++++++++++++++++++++++++++++++++



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