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

k.moriwaki [E-MAIL ADDRESS DELETED]
2008年 10月 29日 (水) 19:24:01 JST


森脇です。

> すいません、そのファンクションでのエラー内容は
> 以前のメールでもらったのと同じ内容でしょうか?
すいません、ちょっと環境が無いので確認できませんが
たしか同じ内容だったはずです。


2008/10/29 18:07 kubo <[E-MAIL ADDRESS DELETED]>:
> 久保(jflute)です。
>
>>> プロシージャ、パッケージのプロシージャは実行できましたが、、
>>> ファンクション、パッケージのファンクションはエラーになりました。
>
> すいません、そのファンクションでのエラー内容は
> 以前のメールでもらったのと同じ内容でしょうか?
>
> 2008/10/29 kubo <[E-MAIL ADDRESS DELETED]>:
>> 久保(jflute)です。
>>
>> 森脇さん、こんばんは
>>
>> 取り急ぎコメントします。
>>
>>> プロシージャ、パッケージのプロシージャは実行できましたが、、
>>> ファンクション、パッケージのファンクションはエラーになりました。
>> なるほど、了解です。
>> ポイントはファンクションのようですね。
>>
>> ファンクションに関しては、Example上では
>>
>> Java版:ファンクションOK、パッケージファンクション未確認
>> C#版:両方とも未確認
>>
>> です。
>> ちょと後で試してみます。
>> (夜になります)
>>
>> 2008/10/29 k. moriwaki <[E-MAIL ADDRESS DELETED]>:
>>> 藤井さん
>>> 森脇です
>>>
>>> 回答ありがとうございます。
>>>
>>>> とあるので、ストアド?ファンクション?のDDLの方から一度確認して
>>>> いただけないでしょうか。
>>> SQL Plusで実行してみましたが問題なく実行されました。
>>>
>>> DBFluteからではなくS2DAO.NETで直接呼べるか試してみます。
>>>
>>>
>>> 2008/10/27 2:19 Hiroaki Fujii <[E-MAIL ADDRESS DELETED]>:
>>>> コミッタの藤井です。
>>>>
>>>> ご返事が遅くなり、申し訳ありません。
>>>>
>>>> Quillを使った結果しか試せてませんが、次のようなinterfaceを
>>>> 使ってテストしました。
>>>> 「パッケージ.ファンクション」形式です。
>>>>
>>>> [S2Dao]
>>>> [Implementation]
>>>> [Bean(typeof (SampleDto))]
>>>> public interface IHoge
>>>> {
>>>>    [Procedure("test_pack.get_amount")]
>>>>    int GetAmount(int id);
>>>>
>>>>    [Procedure("test_pack.get_name")]
>>>>    string getName(int id, int amount);
>>>> }
>>>>
>>>> S2DAO.NET側では特に問題なく、実行できました。
>>>>
>>>> エラーを見ると、
>>>>> ORA-06550: 行1、列15:
>>>>> PLS-00306: 'NAME'の呼出しで、引数の数または型が正しくありません。
>>>>> ORA-06550: 行1、列7:
>>>> とあるので、ストアド?ファンクション?のDDLの方から一度確認して
>>>> いただけないでしょうか。
>>>>
>>>> よろしくお願いします。
>>>>
>>>> k.moriwaki さんは書きました:
>>>>> 森脇です
>>>>>
>>>>>> もし「パッケージ名.プロシージャ名」で呼び出せるのであれば、
>>>>>> 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 mailing list
> [E-MAIL ADDRESS DELETED]
> https://ml.seasar.org/mailman/listinfo/seasar-dotnet
>


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