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

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


久保(jflute)です。

> [ESSR0071]SQLで例外が発生しました。理由はOracle.DataAccess.Client.OracleException
> ORA-06550: 行1、列15:
> PLS-00306: 'NAME'の呼出しで、引数の数または型が正しくありません。
> ORA-06550: 行1、列7:

PL/SQLまでは到達してるような気もします。

該当のPL/SQLは、SQL*Plus等から実行可能ですか?
また、手動で作成したPmbのパラメータの定義(数とか)は
合っていますでしょうか?

#
# ちなみにパッケージ付きプロシージャのメタ情報自体が
# 取得できてない(Pmbが作られない)のであれば、
# パッケージ名を付与する以前の問題でしたね。。。
#

2008/10/23 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 メーリングリストの案内