0
Я пишу функцию для вставки BLOB-файла в ORACLE. Во время выполнения кода я получаю сообщение об ошибке ORA-00936: missing expression
.ORA-00936: отсутствует выражение во время выполнения на C#.
Мой код:
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());
}
}
Пожалуйста посоветуйте, где я неправильно.
Проблема - последнее значение, которое вы предоставляете, 'файл'. Это не ваша ссылка 'byte []', поскольку между этим и ссылкой в инструкции нет ссылки. Кажется, что Oracle дает эту конкретную ошибку, потому что это зарезервированное слово; что-то другое даст ORA-00984. Вам нужно привязать объект к переменной в инструкции как поток; но у меня нет опыта делать это на C#, поэтому кому-то придется добавить ответ, если вы не знаете, как это сделать. –