ORA-00936:在C#中执行时缺少表达式。

时间:2014-09-03 10:57:38

标签: c# oracle insert blob

我正在编写一个将BLOB文件插入ORACLE的函数。在执行代码时,我收到错误,指出ORA-00936: missing expression

我的代码:

public static void DatabaseFilePut(MemoryStream fileToPut, OracleConnection con)
    {
     try
      {
       byte[] file = fileToPut.ToArray();
       const string preparedCommand = @"INSERT INTO user_account_statement (statement_id,session_key,login_id,user_id,account_number,
       from_date,todate,ipaddress,
       create_date_time,STATEMENT_FILE) VALUES(1073,'fe79e0345986b5a439c26f731234868b53f877366f529',
       2335,'204254','108142',to_date('2014-08-23 16:45:06','yyyy-mm-dd hh24:mi:ss'),
       to_date('2014-08-23 16:45:06','yyyy-mm-dd hh24:mi:ss'),
       '106.79.126.249',to_date('2014-08-23 16:45:06','yyyy-mm-dd hh24:mi:ss'),file)";
       using (var sqlWrite = new OracleCommand(preparedCommand, con))
       {
        sqlWrite.ExecuteReader();
       }
      }
      catch (Exception ex)
       {
         MessageBox.Show(ex.ToString());
       }
    }

请告知我哪里出错了。

1 个答案:

答案 0 :(得分:0)

我为'file'指定了参数

sqlWrite.BindByName = true;
                var blobparameter = new OracleParameter
                {
                    OracleDbType = OracleDbType.Blob,
                    ParameterName = "ssfile",
                    Value = fileToPut.ToArray()
                };
                sqlWrite.Parameters.Add(blobparameter);

并更改了参数名称。因为参数名file是ORACLE的保留字。所以它可能会产生另一个问题。