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

kubo [E-MAIL ADDRESS DELETED]
2008年 10月 29日 (水) 17:56:01 JST


久保(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 メーリングリストの案内