Симон Моурир дал этот пример :
object o = null;
DateTime d = (DateTime)o; // NullReferenceException
, где unboxing преобразование (литье) из object
(или из одного из классов System.ValueType
или System.Enum
или из типа интерфейса) - тип значения (кроме Nullable<>
) сам по себе дает NullReferenceException
.
В другом направлении конверсия бокса из a Nullable<>
, которая имеет HasValue
, равную false
, на ссылочный тип, может дать ссылку null
, которая затем может привести к NullReferenceException
. Классический пример:
DateTime? d = null;
var s = d.ToString(); // OK, no exception (no boxing), returns ""
var t = d.GetType(); // Bang! d is boxed, NullReferenceException
Иногда бокс происходит по-другому. Например, с помощью этого не общего метода расширения:
public static void MyExtension(this object x)
{
x.ToString();
}
следующий код будет проблематичным:
DateTime? d = null;
d.MyExtension(); // Leads to boxing, NullReferenceException occurs inside the body of the called method, not here.
Эти случаи возникают из-за специальных правил, используемых во время выполнения при боксе Nullable<>
экземпляров.
Это сработало для меня: connect user / «password» Я думаю, что если пароль содержит специальные символы, такие как «@», нам нужно использовать «» для пароля.
Сообщение довольно ясно:
Это указывает, что в вашей конфигурации клиента нет ничего плохого.
Итак, это оставляет вас с
По возможности:
Глупый вопрос, но уверены ли вы, что вы используете оболочку bash
на обоих Unix-серверах?
Я бы попытался заменить
export USR_PASS="$USRID/$USRID_PASS@myDatabase"
на экспорт USR_PASS = " $ {USRID} / $ {USRID_PASS} @myDatabase "
, чтобы убедиться, что переменные интерпретируются правильно
. В качестве конечного, экзотического, однако, содержит ли пароль какие-либо символы, кроме основных буквенно-цифровая и пунктуация. Поскольку 10g не чувствителен к регистру, пароль в нижнем регистре преобразуется в верхний регистр, что может вызвать нечетные эффекты с такими вещами, как акцентированные символы