Создать представление в ORACLE

Держите его простым с C # 6.0

public async Task<T> Retry<T>(Func<T> action, TimeSpan retryInterval, int retryCount)
{
    try
    {
        return action();
    }
    catch when (retryCount != 0)
    {
        await Task.Delay(retryInterval);
        return await Retry(action, retryInterval, --retryCount);
    }
}
0
задан a_horse_with_no_name 15 January 2019 в 09:52
поделиться

1 ответ

Они точно такие же в вашем примере. Из документации :

Каждый объект базы данных имеет имя. В операторе SQL вы представляете имя объекта с заключенным в кавычки идентификатором или без кавычки идентификатором .

  • Заключенный в кавычки идентификатор начинается и заканчивается двойными кавычками ("). Если вы называете объект схемы, используя заключенный в кавычки идентификатор, то вы должны использовать двойные кавычки всякий раз, когда ссылаетесь на этот объект. [ 1119]

  • Идентификатор без кавычек не заключен в знаки препинания.

Вы можете использовать идентификаторы в кавычках или без кавычек для именования любого объекта базы данных ...

и

Идентификаторы без кавычек не чувствительны к регистру. Oracle интерпретирует их как прописные. Идентификаторы в кавычках чувствительны к регистру.

Итак , ORDER_NO не заключено в кавычки и не учитывает регистр, и Oracle обрабатывает имя как заглавные - так эффективно, когда он ищет в словаре данных соответствующее имя столбца (в представлении all_tab_columns), он ищет точное строковое значение 'ORDER_NO'. Это также относится к случаю, если вы не заключили в кавычки order_no или Order_No, или к любому другому сочетанию падежей, потому что Oracle без кавычек все еще рассматривает его как верхний case и ищет внутри 'ORDER_NO'.

"ORDER_NO" в кавычках, так что он чувствителен к регистру, но, так как он в любом случае в верхнем регистре, не имеет значения. Oracle все еще ищет столбец в словаре данных под названием 'ORDER_NO'.

Если фактический идентификатор объекта (например, имя столбца) находится в верхнем регистре в словаре данных, то не имеет значения, если вы предоставите его в качестве не заключенного в кавычки идентификатора в любом случае или в качестве заключенного в кавычки идентификатора в верхнем регистре.

Что вы не можете сделать, это использовать кавычки и другой регистр. "ORDER_NO" хорошо; "order_no" или "Order_No", или любой другой процитированный смешанный регистр не будет соответствовать тому, что есть в словаре данных.

Хотя вы можете создавать объекты с указанными в кавычках идентификаторами, которые не в верхнем регистре (или которые включают или начинаются с иным образом недопустимых символов, как показано в правилах, перечисленных в этой документации), обычно это считается плохой идеей для вас тогда всегда должны использовать кавычки и точно такой же случай. И в документации также отмечается:

Oracle не рекомендует использовать заключенные в кавычки идентификаторы для имен объектов базы данных. Эти указанные в кавычках идентификаторы принимаются SQL * Plus, но они могут быть недействительными при использовании других инструментов, управляющих объектами базы данных.

0
ответ дан Alex Poole 15 January 2019 в 09:52
поделиться
Другие вопросы по тегам:

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