2

関数は次のように定義されています:

FUNCTION MyFunction(sDate DATE, toLoc VARCHAR2) RETURN VARCHAR2

私のコードは次のようになります。

cmd.CommandText = "MyFunction";
cmd.CommandType= CommandType.StoredProcedure;

OracleCommandBuilder.DeriveParameters(cmd);
cmd.Parameters["SDATE"].Value = DateTime.Now
cmd.Parameters["TOLOC"].Value = "ABC";
cmd.ExecuteNonQuery();

また、パラメータ タイプを に設定して、パラメータを手動で追加しようとしましたOracleDbType.Date。私はこの例外を受け取り続けます:

Oracle.DataAccess.Client.OracleException was caught
  HResult=-2147467259
  Message=ORA-01843: not a valid month
ORA-06512: at "MyFunction", line 102
ORA-06512: at line 1
  Source=Oracle Data Provider for .NET
  ErrorCode=-2147467259
4

2 に答える 2

0

cmd.Parameters ["SDATE"]。ValueのタイプがDateTimeオブジェクトであるかどうかを確認しますか?リンクのドキュメントを参照してください。それはDateオブジェクトであると言います。 http://docs.oracle.com/cd/B19306_01/win.102/b14307/OracleDbTypeEnumerationType.htm

于 2013-01-22T14:54:21.997 に答える
0

cmd.Parameters["SDATE"].Value = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")良いですか?

于 2013-01-22T14:52:02.207 に答える