0

レコードの挿入中にエラー「ORA-00947: 値が不足しています」) が発生し、その理由がわかりません! 私には正しい数のパラメータがあるようです:

string sQuery = "insert into EventLog (UserEventLogID, USERID, EVENTSEVERITYID, LOGTIME_TZ, USEREVENTTYPEID, USEREVENTMSG) " +
    "values (0, :USERID, :EVENTSEVERITYID, cast(:LOGTIME_TZ as Timestamp(6) With Time Zone) at time zone '" + oLog.TimeZone + "'), " +
    ":EVENTTYPEID, :EVENTMSG) " +
    " returning USEREVENTLOGID into :EventLogID";

    oraCmd = new OracleCommand();
    oraCmd.BindByName = true;
    oraCmd.Parameters.Add("EVENTSEVERITYID", OracleDbType.Int16, 2, oLog.EventSeverityID, ParameterDirection.Input);
    oraCmd.Parameters.Add("LOGTIME_TZ", OracleDbType.TimeStamp, 6, oLog.EventTimestamp, ParameterDirection.Input);
    oraCmd.Parameters.Add("EVENTTYPEID", OracleDbType.Int16, 4, oLog.EventTypeID, ParameterDirection.Input);
    oraCmd.Parameters.Add("EVENTMSG", OracleDbType.Varchar2, 300, oLog.EventMsg, ParameterDirection.Input);
    oraCmd.Parameters.Add("USERID", OracleDbType.Varchar2, 50, oLog.UserID, ParameterDirection.Input);

    outParam = new OracleParameter("EventLogID", OracleDbType.Decimal);
    outParam.Direction = ParameterDirection.Output;
    oraCmd.Parameters.Add(outParam);

テーブルにはもう 1 つの列「LGTIME」があり、これは null 可能であるため、insert ステートメントには含めませんでした。

4

1 に答える 1

1

余分な ")" が表示されます。キャスト(:LOGTIME_TZ as Timestamp(6) With Time Zone) <----- at time zone '" + oLog.TimeZone + "')

于 2013-02-26T20:47:24.373 に答える