ORA-01036: 非法的变量名/编号 
说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。 异常详细信息: System.Data.OracleClient.OracleException: ORA-01036: 非法的变量名/编号 
请问究竟是什么原因呢,我是把文件上传到数据库的时候出现这个问题的

解决方案 »

  1.   

    show your code, do you have : before the parameter name?SELECT * FROM TABLE WHERE(NUMBERCOL = :VAL)
      

  2.   

    no,I haven't.There is  my code:
    myCommand.Parameters.Add(new System .Data .OracleClient .OracleParameter("@blob_content",System .Data .OracleClient.OracleType.Blob));
    myCommand.Parameters["@blob_content"].Value=blob_content;
      

  3.   

    show your sql for myCommand
      

  4.   

    [C#]
    using System;
    using System.Data;
    using System.Data.SqlClient;
    using System.IO;public class EmployeeData
    {
      public static void Main()
      {
        DateTime hireDate = DateTime.Parse("5/21/99");
        AddEmployee("Jones", "Mary", "Sales Representative", hireDate, 5, "jones.bmp");
      }  public static void AddEmployee(string lastName, string firstName, string title, DateTime hireDate , int reportsTo, string photoFilePath)
      {
        byte[] photo = GetPhoto(photoFilePath);    SqlConnection nwindConn = new SqlConnection("Data Source=localhost;Integrated Security=SSPI;Initial Catalog=Northwind;");    SqlCommand addEmp = new SqlCommand("INSERT INTO Employees (LastName, FirstName, Title, HireDate, ReportsTo, Photo) " +
                                           "Values(@LastName, @FirstName, @Title, @HireDate, @ReportsTo, @Photo)", nwindConn);     addEmp.Parameters.Add("@LastName",  SqlDbType.NVarChar, 20).Value = lastName;
        addEmp.Parameters.Add("@FirstName", SqlDbType.NVarChar, 10).Value = firstName;
        addEmp.Parameters.Add("@Title",     SqlDbType.NVarChar, 30).Value = title;
        addEmp.Parameters.Add("@HireDate",  SqlDbType.DateTime).Value     = hireDate;
        addEmp.Parameters.Add("@ReportsTo", SqlDbType.Int).Value          = reportsTo;    addEmp.Parameters.Add("@Photo",     SqlDbType.Image, photo.Length).Value = photo;    nwindConn.Open();    addEmp.ExecuteNonQuery();    nwindConn.Close();
      }  public static byte[] GetPhoto(string filePath)
      {
        FileStream fs = new FileStream(filePath, FileMode.Open, FileAccess.Read);
        BinaryReader br = new BinaryReader(fs);    byte[] photo = br.ReadBytes((int)fs.Length);    br.Close();
        fs.Close();    return photo;
      }
    }
      

  5.   

    System.Data .OracleClient .OracleCommand myCommand = new System.Data.OracleClient.OracleCommand("INSERT INTO log_db (WJ_JH,NAME,MIME_TYPE,DOC_SIZE,BLOB_CONTENT) VALUES (@wj_jh,@name,@mime_type,@doc_size,@blob_content )", myConnection); myCommand.Parameters.Add(new System .Data .OracleClient .OracleParameter("@wj_jh",System .Data .OracleClient.OracleType.VarChar,32));
    myCommand.Parameters["@wj_jh"].Value=wj_jh; myCommand.Parameters.Add(new System .Data .OracleClient .OracleParameter("@name",System .Data .OracleClient.OracleType.VarChar,512));
    myCommand.Parameters["@name"].Value=name; myCommand.Parameters.Add(new System .Data .OracleClient .OracleParameter("@mime_type",System .Data .OracleClient.OracleType.VarChar,256));
    myCommand.Parameters["@mime_type"].Value=mime_type; myCommand.Parameters.Add(new System .Data .OracleClient .OracleParameter("@doc_size",System .Data .OracleClient.OracleType.Number ,10));
    myCommand.Parameters["@doc_size"].Value=doc_size; myCommand.Parameters.Add(new System .Data .OracleClient .OracleParameter("@blob_content",System .Data .OracleClient.OracleType.Blob));
    myCommand.Parameters["@blob_content"].Value=blob_content;// myCommand.Parameters.Add(new SqlParameter("@imgdata",SqlDbType.Image));
    // myCommand.Parameters["@imgdata"].Value=imgData;
               string sql="INSERT INTO log_db (WJ_JH,NAME,MIME_TYPE,DOC_SIZE,BLOB_CONTENT) VALUES ('"+wj_jh+"','"+name+"','"+mime_type+"',"+doc_size+",'"+blob_content+"')"; myConnection.Open();
    try
    {
    //int numRowsAffected=myCommand.ExecuteNonQuery ();//;ExecuteNonQuery();
    string ss=myCommand.CommandText ;
    myCommand.ExecuteNonQuery ();//;ExecuteNonQuery();
      

  6.   

    与 songhtao(三十年孤独) 的差不多,不同就在于我的是ORACLE数据库,他的是SQLSERVER
      

  7.   

    try tor replace "@" with ":"
    System.Data.OracleClient.OracleCommand("INSERT INTO log_db (WJ_JH,NAME,MIME_TYPE,DOC_SIZE,BLOB_CONTENT) VALUES (:wj_jh,:name,:mime_type,:doc_size,:blob_content )", myConnection);