Ошибка SP2-306 - SQLplus [дубликат]

Симон Моурир дал этот пример :

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<> экземпляров.

4
задан rsinuhe 2 July 2011 в 01:05
поделиться

3 ответа

Это сработало для меня: connect user / «password» Я думаю, что если пароль содержит специальные символы, такие как «@», нам нужно использовать «» для пароля.

0
ответ дан Darius 31 August 2018 в 21:31
поделиться

Сообщение довольно ясно:

  • вы успешно связались с базой данных
  • , предоставленные учетные данные неверны

Это указывает, что в вашей конфигурации клиента нет ничего плохого.

Итак, это оставляет вас с

  • неправильной комбинацией user / pw
  • вы не связывались с базой данных, которую, по вашему мнению, имеете

По возможности:

  • Убедитесь, что вы можете подключиться к учетным данным, предоставленным из командной строки.
  • Используйте tnsping mydatabase, чтобы проверить хост и экземпляр, с которыми вы связываетесь, убедитесь, что это правильно. Вывод из этой команды должен указать вам хост, порт и экземпляр / службу, к которой вы подключаетесь. Если это не так, проверьте файл tnsnames.ora для этого псевдонима.
  • Как указывает @OMG Ponies, если вы используете 11g, убедитесь, что ваш пароль правильно
6
ответ дан DCookie 31 August 2018 в 21:31
поделиться

Глупый вопрос, но уверены ли вы, что вы используете оболочку bash на обоих Unix-серверах?

Я бы попытался заменить

export USR_PASS="$USRID/$USRID_PASS@myDatabase"

на экспорт USR_PASS = " $ {USRID} / $ {USRID_PASS} @myDatabase "

, чтобы убедиться, что переменные интерпретируются правильно

. В качестве конечного, экзотического, однако, содержит ли пароль какие-либо символы, кроме основных буквенно-цифровая и пунктуация. Поскольку 10g не чувствителен к регистру, пароль в нижнем регистре преобразуется в верхний регистр, что может вызвать нечетные эффекты с такими вещами, как акцентированные символы

0
ответ дан Gary Myers 31 August 2018 в 21:31
поделиться
Другие вопросы по тегам:

Похожие вопросы: