- - PR -
VB.netでストアド実行
1
投稿者 | 投稿内容 |
---|---|
|
投稿日時: 2004-07-07 21:14
OS:Windows2000
言語:VB.net 接続:ADO プロバイダ:MSDAORA ストアドファンクションをVB.netから呼び出し戻り値を取得したいのですが、 「ORA-06550: 行 1、列 18: PLS-00306: 'CREATE_JUKY'の呼出しで、引数の数または型が正しくありません。 ORA-06550: 行 1、列 7: PL/SQL: Statement ignored」 とエラーになってしまいます。ストアドの宣言(?)部分は function CREATE_JUKY( JKNO_IN in number, PLCD_IN in number, JDATE1_IN in date, JDATE2_IN in date, COURSE_CODE_IN in varchar2, GROUP_CODE_IN in varchar2, GROUP_TYPE_IN in number, TABLE_NAME_IN in varchar2 ) return number です。 OleDB.OleDbType.Numericなどの指定が間違っているのでしょうか? それともほかに何か間違いがあるのでしょうか? 以下VB.net部分 'ストアド名を渡す DBComd.CommandText = "PKG_JOKEN.CREATE_JUKY" 'タイプ変更 DBComd.CommandType = CommandType.StoredProcedure '戻り値 DBParm = DBComd.Parameters.Add("RET", OleDB.OleDbType.Numeric) DBParm.Direction = ParameterDirection.ReturnValue 'パラメータ1 DBParm = DBComd.Parameters.Add("JKNO_IN", OleDB.OleDbType.Numeric) DBParm.Direction = ParameterDirection.Input DBParm.Value = P_strDispInfo(PC_JKNO) 'パラメータ2 DBParm = DBComd.Parameters.Add("PLCD_IN", OleDB.OleDbType.Numeric) DBParm.Direction = ParameterDirection.Input DBParm.Value = P_strDispInfo(PC_PLCD) 'パラメータ3 DBParm = DBComd.Parameters.Add("JDATE1_IN", OleDB.OleDbType.DBDate) DBParm.Direction = ParameterDirection.Input DBParm.Value = P_strDispInfo(PC_YMD1) 'パラメータ4 DBParm = DBComd.Parameters.Add("JDATE2_IN", OleDB.OleDbType.DBDate) DBParm.Direction = ParameterDirection.Input DBParm.Value = P_strDispInfo(PC_YMD2) 'パラメータ5 DBParm = DBComd.Parameters.Add("COURSE_CODE_IN", OleDB.OleDbType.VarChar, Len(strcscd)) DBParm.Direction = ParameterDirection.Input DBParm.Value = strcscd 'パラメータ6 DBParm = DBComd.Parameters.Add("GROUP_CODE_IN", OleDB.OleDbType.VarChar, Len(strgrpcode)) DBParm.Direction = ParameterDirection.Input DBParm.Value = strgrpcode 'パラメータ7 DBParm = DBComd.Parameters.Add("GROUP_TYPE_IN", OleDB.OleDbType.Numeric) DBParm.Direction = ParameterDirection.Input DBParm.Value = P_strDispInfo(PC_GRPCD) 'パラメータ8 DBParm = DBComd.Parameters.Add("TABLE_NAME_IN", OleDB.OleDbType.VarChar, Len(strTblName)) DBParm.Direction = ParameterDirection.Input DBParm.Value = strTblName 'データ読み込み DBComd.ExecuteNonQuery() |
|
投稿日時: 2004-07-08 09:31
FUNCTIONって、呼び出せるんでしたっけ?PROCEDUREだけじゃなかったでしたっけ?FUNCTIONは、
SELECT function FROM DUAL で呼び出したような? |
|
投稿日時: 2004-07-08 09:55
書き方が悪かったようです。
正確にはオラクルのパッケージ本体にあるFunctionを呼び出すです。 パラメータがVarChar2型の1つだけで戻り値がNumber型という別のものは呼び出して処理できています。 Date型のパラメータの指定が悪いのかと思っているのですが何を指定しても同様のエラーになってしまいます。 |
|
投稿日時: 2004-07-08 10:14
解決しました。
一部パラメータに値なし状態が発生していたようです。 お手数をおかけしました。 |
1