2016-02-01 68 views
0

我试图将我的图像存储到具有blob数据类型的数据库中,并创建了存储该图像所有内容的blob命名字节。我创建了一个名为ReadFile(FullPath)获得的图像内容的方法,但同时存储这个值,我得到一个以下错误:ORA-00984:列不允许在这里?

ORA-00984:列在这里不允许

请帮我解决这个问题。

string file_id_is = db.getData(select_fileid_query).ToString(); 
int I_File_Id = Convert.ToInt32(file_id_is); 
string FileName = System.IO.Path.GetFileName(PostedFile.FileName); 
string FileContentType = System.IO.Path.GetFileName(PostedFile.ContentType); 
string FullPath = System.IO.Path.GetFullPath(PostedFile.FileName); 
byte[] blob = ReadFile(FullPath); 

string Query = "insert into JOINTING_FILES_DETAILS (ID,DRAFTSMAN_FILES_ID,FILE_NAME,CONTENT_TYPE,DATA) 
values (JOINTING_UPLOADED_SEQ.NEXVAL,:file_id,:FileNameis,:FileType,:BlobParameter)"; 
using (OracleCommand cmd2 = new OracleCommand(Query, connection.get())) 
{ 
    try 
    { 
     cmd2.Parameters.Add("file_id", I_File_Id); 
     cmd2.Parameters.Add("FileNameis", FileName); 
     cmd2.Parameters.Add("FileType", FileContentType); 
     cmd2.Parameters.Add("BlobParameter", blob); 
     cmd2.ExecuteNonQuery(); 
    } 
    catch(Exception e) 
    { 
     Response.Write(e.Message) 
    } 
} 
+0

请帮我 – suhas

+2

什么是'JOINTING_UPLOADED_SEQ.NEXVAL'?这听起来像是一个列名,而不是一个值。 –

+0

'JOINTING_UPLOADED_SEQ'是我在oracle中为此表创建的序列号 – suhas

回答

2

它看起来像你犯了一个错字,用于访问序列的下一个值。这里是documentation使用此

所以尝试改变

JOINTING_UPLOADED_SEQ.NEXVAL 

JOINTING_UPLOADED_SEQ.NEXTVAL 
+0

是的,我忘了放'T',愚蠢的拼写/语法错误,现在没关系 – suhas