Вот код (с сервера/пароли и т.д. удалены)Почему это обновление блокирует строку в Oracle 10?
public int SetUploadedInESIDatabase(string ID)
{
using (var oOracleConn = new OracleConnection())
{
oOracleConn.ConnectionString =
@"Data Source=(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=<ip>)(PORT=1521)))(CONNECT_DATA=(SERVER=DEDICATED)(SERVICE_NAME=<dbname>)));User Id=<user>;Password=<password>;";
var cmd =
new OracleCommand(
"UPDATE FOO_ACCESS SET PIMAGE ='-1' WHERE CODE= '" + ID + "'", oOracleConn);
oOracleConn.Open();
return cmd.ExecuteNonQuery();
}
}
Эффект этого кода он никогда не получает мимо возвращения заявления. Ошибка не возвращается (даже за одну ночь)
Я не эксперт по базам данных, но наш жесткий диск DBA говорит, что соединение блокировалось (или, возможно, строка ...) он убил соединение блокировки, но все же, когда я запускаю код блокируется.
Я делаю это неправильно (tm) в отношении просьбы Oracle обновить строку?
Я понимаю, что должен использовать параметризованный запрос, но у меня была проблема с этим и нужны простые вещи! Если я скопирую встроенную команду из cmd. с отладчиком и запускать его с помощью SQL Developer, тогда он работает (хотя иногда он также блокируется)
Я могу выбрать из базы данных по желанию.
Я не уверен, что это нормальная вещь или что-то общее с нашей средой, поэтому любая помощь с радостью принимается!
Ого, это действительно то, что строка соединения Oracle похоже на C#? Это фактически делает строки Java-соединения для Oracle выглядят красивыми в сравнении! – Powerlord
@ R.Bemrose: Это только то, что выглядит строка подключения, если вы не используете файл Oracle TNSNAMES.ORA для предоставления дружественных имен для серверов. В противном случае использование TNSNAMES выглядит намного приятнее: 'Data Source = ServerName; Идентификатор пользователя = пользователь; Пароль = pw'. – LBushkin
@R. Bemrose: Oracle поддерживает различные форматы строк подключения. Http://www.connectionstrings.com/oracle#p12 – devio