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

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


藤井さん
森脇です

回答ありがとうございます。

> とあるので、ストアド?ファンクション?の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 メーリングリストの案内