[seasar-dotnet:1079] Re: S2Dao.NET、DBFlute - Oracleのパッケージ対応について

kubo [E-MAIL ADDRESS DELETED]
2008年 10月 23日 (木) 19:41:19 JST


久保(jflute)です。

森脇さん、ご意見ありがとうございます。
(スキーマ名が先ですね)

実際に、dbflute-oracle-exampleで
パッケージのプロシージャを作成しようとしています。
(コンパイルエラーと格闘。。。)
うまくいけば、同じようにdbflute-noracle-exampleで
試して同様の現象を再現させたいと思います。

2008/10/23 k. moriwaki <[E-MAIL ADDRESS DELETED]>:
> 森脇です
>
>> SQL上のプロシージャ名を「パッケージ名.プロシージャ名」に
>> した方がよいでしょうか?(Java/C#両方)
> Java版のS2Daoだと
> ・パッケージ名.プロシージャ名
> ・スキーマ名.パッケージ名.プロシージャ名
> が定義できるようになっているので、それに合わせた方が良いかもしれませんね。
> (S2Dao.NET自体がどう対応するかにもよりますが…)
>
> かなり古いですが、「スキーマ名.パッケージ名.プロシージャ名」で使用されている
> 方もいたみたいですし。
> http://ml.seasar.org/archives/seasar-user/2007-February/006082.html
> http://ml.seasar.org/archives/seasar-user/2007-February/006005.html
>
>
> 2008/10/23 19:02 kubo <[E-MAIL ADDRESS DELETED]>:
>> 久保(jflute)です。
>>
>> 森脇さん、
>> すいませんエラーはちょっと後で見させて頂きます。
>> (S2Dao.NETのプロシージャ作者の投稿を待つしか.....)
>>
>> ちょっと仕様の相談です。
>>
>> ご教授頂いた方法でプロシージャのパッケージを取得するようにしました。
>> メタ情報からパッケージ名が取得できたら、
>> SQL上のプロシージャ名を「パッケージ名.プロシージャ名」に
>> した方がよいでしょうか?(Java/C#両方)
>> (よくわからないならわからないでOKです)
>>
>> #
>> # Oracle限定にするかは要検討。。。
>> #
>>
>> 2008/10/23 k. moriwaki <[E-MAIL ADDRESS DELETED]>:
>>> 森脇です
>>>
>>>> もし「パッケージ名.プロシージャ名」で呼び出せるのであれば、
>>>> DBFluteがSql2Entityで自動生成するProcedurePmbを参考に
>>>> 手動でPmbを作って、ProcedureNameにパッケージ名を付与すれば
>>>> 実行はできるかもしれません。(未検証)
>>> これは試して見たんですが例外が発生しました。
>>> で、そもそもS2Dao.NETが対応していない為発生しているのではと思って
>>> メールした次第です。
>>>
>>>
>>> 以下ログです。
>>>
>>> Message: Look! Read the message below.
>>> /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
>>> The SQL failed to execute!
>>>
>>> [Advice]
>>> Please confirm the Exception message.
>>>
>>> [Exception]
>>> Seasar.Framework.Exceptions.SQLRuntimeException
>>> [ESSR0071]SQLで例外が発生しました。理由はOracle.DataAccess.Client.OracleException
>>> ORA-06550: 行1、列15:
>>> PLS-00306: 'NAME'の呼出しで、引数の数または型が正しくありません。
>>> ORA-06550: 行1、列7:
>>> PL/SQL: Statement ignored    場所
>>> Oracle.DataAccess.Client.OracleException.HandleErrorHelper(Int32
>>> errCode, OracleConnection conn, IntPtr opsErrCtx, OpoSqlValCtx*
>>> pOpoSqlValCtx, Object src, String procedure)
>>>   場所 Oracle.DataAccess.Client.OracleException.HandleError(Int32
>>> errCode, OracleConnection conn, String procedure, IntPtr opsErrCtx,
>>> OpoSqlValCtx* pOpoSqlValCtx, Object src)
>>>   場所 Oracle.DataAccess.Client.OracleCommand.ExecuteNonQuery()
>>>   場所 Seasar.Framework.Util.CommandUtil.ExecuteNonQuery(IDataSource
>>> dataSource, IDbCommand cmd)
>>>
>>> [NextException]
>>> Oracle.DataAccess.Client.OracleException
>>> ORA-06550: 行1、列15:
>>> PLS-00306: 'NAME'の呼出しで、引数の数または型が正しくありません。
>>> ORA-06550: 行1、列7:
>>> PL/SQL: Statement ignored
>>>  ErrorCode = 6550
>>>  HelpLink  =
>>>
>>> [Behavior]
>>> CodeMstBhv.OutsideSql().Call()
>>>
>>> [OutsideSqlPath]
>>> CODE.NAME
>>>
>>> [ParameterBean]
>>> App.DB.ExDao.PmBean.NamePmb
>>> {,1,0}
>>>
>>> [Statement]
>>> Oracle.DataAccess.Client.OracleCommand
>>> * * * * * * * * * */
>>>
>>> 2008/10/23 17:21 kubo <[E-MAIL ADDRESS DELETED]>:
>>>> 久保(jflute)です。
>>>>
>>>> もし「パッケージ名.プロシージャ名」で呼び出せるのであれば、
>>>> DBFluteがSql2Entityで自動生成するProcedurePmbを参考に
>>>> 手動でPmbを作って、ProcedureNameにパッケージ名を付与すれば
>>>> 実行はできるかもしれません。(未検証)
>>>>
>>>>
>>>> 2008/10/23 kubo <[E-MAIL ADDRESS DELETED]>:
>>>>> 久保(jflute)です。
>>>>>
>>>>> 取り急ぎ、DBFluteでは意識して対応はしていません。
>>>>>
>>>>> ADO.NET(というかOracleのProvider)でどうやって、
>>>>> 指定して実行できるのかがよくわかっていません。
>>>>> (InternalProcedureHandlerクラスにてプロシージャを実行しています)
>>>>>
>>>>> 後は、パッケージ名がメタ情報として取得できるのかどうかも
>>>>> わかっていません。(というかそもそもアプローチしたことがないです)
>>>>>
>>>>> #
>>>>> # そもそもOracleでパッケージを使ったことがないので、
>>>>> # 申し訳ありませんが知識不足です。。。
>>>>> #
>>>>>
>>>>> 2008/10/23 k. moriwaki <[E-MAIL ADDRESS DELETED]>:
>>>>>> 森脇と申します。
>>>>>>
>>>>>> 件名の通りなのですが、S2Dao.NET、DBFluteともOracleのパッケージには
>>>>>> 対応されていますでしょうか?
>>>>>>
>>>>>> S2Dao.NET のドキュメントを確認しましたが、Procedure属性の指定が
>>>>>> ・ストアプロシージャ名
>>>>>> ・スキーマ名.ストアドプロシージャ名
>>>>>> しか説明がありませんでしたので対応されていないのでしょうか?
>>>>>> _______________________________________________
>>>>>> seasar-dotnet mailing list
>>>>>> [E-MAIL ADDRESS DELETED]
>>>>>> https://ml.seasar.org/mailman/listinfo/seasar-dotnet
>>>>>>
>>>>>
>>>> _______________________________________________
>>>> seasar-dotnet mailing list
>>>> [E-MAIL ADDRESS DELETED]
>>>> https://ml.seasar.org/mailman/listinfo/seasar-dotnet
>>>>
>>> _______________________________________________
>>> seasar-dotnet mailing list
>>> [E-MAIL ADDRESS DELETED]
>>> https://ml.seasar.org/mailman/listinfo/seasar-dotnet
>>>
>> _______________________________________________
>> seasar-dotnet mailing list
>> [E-MAIL ADDRESS DELETED]
>> https://ml.seasar.org/mailman/listinfo/seasar-dotnet
>>
> _______________________________________________
> seasar-dotnet mailing list
> [E-MAIL ADDRESS DELETED]
> https://ml.seasar.org/mailman/listinfo/seasar-dotnet
>


seasar-dotnet メーリングリストの案内