от Microsoft
"Метод ExecuteOracleScalar () класса OracleCommand используется для выполнения оператора SQL или хранимой процедуры, которая возвращает одно значение в качестве типа данных OracleType. Если команда возвращает набор результатов, метод возвращает значение первого столбец первой строки. Метод возвращает нулевую ссылку, если возвращается REF CURSOR, а не значение первого столбца первой строки, на которую указывает REF CURSOR. Метод ExecuteScalar () класса OracleCommand аналогичен Метод ExecuteOracleScalar (), за исключением того, что он возвращает значение в качестве типа данных .NET Framework.
Сказав, что ни один из этих методов не полезен при работе с хранимыми процедурами Oracle. Хранимые процедуры Oracle не могут возвращать значение как часть оператора RETURN, только как параметры OUT - см. Раздел «Хранимые процедуры, которые не возвращают данные». Кроме того, вы не можете вернуть набор результатов, кроме как через выходной параметр REF CURSOR - это обсуждается в следующем разделе.
Вы можете получить возвращаемое значение для функции Oracle только с помощью параметра RETURN (показанного в предыдущем разделе), а не с помощью одного из методов ExecuteScalar. "
http://msdn.microsoft.com/en-us/library/ms971506.aspx