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

kubo [E-MAIL ADDRESS DELETED]
2008年 10月 29日 (水) 18:07:21 JST


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