Как я могу использовать в нем параметр функции? [Дубликат]

Интересно, что ни один из ответов на этой странице не упоминает два крайних случая, надеюсь, никто не возражает, если я их добавлю:

Случай с краем # 1: одновременный доступ к Словарю

Родовые словари в .NET не являются потокобезопасными, а иногда могут бросать NullReference или даже (чаще) a KeyNotFoundException при попытке получить доступ к ключу из двух параллельных потоков. Исключение в этом случае является довольно ошибочным.

Случай с краем # 2: небезопасный код

Если код NullReferenceException задан кодом unsafe, вы можете посмотреть на переменные указателя , и проверьте их на IntPtr.Zero или что-то в этом роде. Это одно и то же («исключение нулевого указателя»), но в небезопасном коде переменные часто переводятся в типы значений / массивы и т. Д., И вы ударяете головой о стену, задаваясь вопросом, как тип значения может исключение.

(Еще одна причина для небезопасного использования небезопасного кода, если вам это нужно)

2
задан Mike 8 April 2010 в 21:27
поделиться

1 ответ

То, что вы пытаетесь сделать, невозможно в хранимой процедуре с или без подготовленного оператора.

Вы могли бы сделать что-то подобное:

DELIMITER $$

DROP PROCEDURE IF EXISTS test_proc $$
CREATE PROCEDURE  test_proc(param1 varchar(20))
BEGIN

  CASE UPPER(param1)
    WHEN 'MICROSECOND' THEN select DATE_SUB(now(), INTERVAL 1 MICROSECOND); 
    WHEN 'SECOND' THEN select DATE_SUB(now(), INTERVAL 1 SECOND);
    WHEN 'MINUTE' THEN select DATE_SUB(now(), INTERVAL 1 MINUTE);
    WHEN 'HOUR' THEN select DATE_SUB(now(), INTERVAL 1 HOUR);
    WHEN 'DAY' THEN select DATE_SUB(now(), INTERVAL 1 DAY);
    WHEN 'WEEK' THEN select DATE_SUB(now(), INTERVAL 1 WEEK);
    WHEN 'MONTH' THEN select DATE_SUB(now(), INTERVAL 1 MONTH);
    WHEN 'QUARTER' THEN select DATE_SUB(now(), INTERVAL 1 QUARTER);
    WHEN 'YEAR' THEN select DATE_SUB(now(), INTERVAL 1 YEAR);
    ELSE select 'UNEXPECTED UNIT';
  END CASE;

END $$

DELIMITER ;
2
ответ дан Ike Walker 31 August 2018 в 19:41
поделиться
Другие вопросы по тегам:

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