• Как поправить функцию first?

    update teacher t
       set hiredate = (select min(lessondatetime)
                         from lesson l
                        where t.pc_teacher = l.teacherpc)
    Ответ написан
    Комментировать
  • Можно ли написать sql-запрос, который при выполнении разных условий будет записывать данные в разные поля?

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

    insert into tb
    select case when cond1 then 1 else null num,
           case when not cond1 then 'a' else null str
    from ...


    Вот пример более развёрнуто:
    create table test_a(num number, str varchar2(100));
    
    insert into test_a
    with
      generator as
       (select case
                 when dbms_random.value() > 0.5 then dbms_random.string('p', 10)
                 else to_char(trunc(dbms_random.value(0, 100)))
               end str
          from dual
          connect by level <= 50),
      classificator as
       (select str, case
                      when translate(str, chr(10)||'0123456789', chr(10)) is null then 'number'
                      else 'string'
                    end type
          from generator)
    select case
             when type = 'number' then to_number(str)
             else null
           end num,
           case
             when type = 'string' then str
             else null
           end str
      from classificator;
    commit;
    
    select * from test_a;
    Ответ написан
    Комментировать
  • Как записать выборку во временный массив Oracle?

    Создайте ассоциативный массив и записывайте в него айди клиентов-ахтунгов в качестве индексов. В цикле перед обработкой очередного заказа проверяйте, существует ли в массиве ахтунгов элемент с индексом, равным айди клиента.
    Ответ написан
  • Как мировая практика подсказывает проверять на уникальность при вставке строк в таблицу БД?

    Всё зависит от конкретных обстоятельств. На уровне БД проверка запросом может быть на порядок быстрее попытки вставить дубликат. На уровне приложения из-за накладных расходов разница будет меньше, иногда существенно.
    А дальше в дело вступают вероятности. Насколько вероятно напороться на дубликат? Если такое явление редкость, то заморачиваться не нужно - делать уникальный ключ и сразу инсертить. Если большая часть попыток записи завершается ошибкой, можно попробовать сначала делать запрос, и в случае неудачи генерировать новый ключ в приложении. Но в этом случае напрашивается другое решение: сгенерировать ключ непосредственно во время вставки средствами БД и вернуть его как результат операции.
    Ответ написан
    Комментировать
  • Как правильнее удалять устаревшие сессий из базы данных?

    Разве в mysql нет функционала периодического запуска кода по расписанию? Вроде Event Scheduler
    Ответ написан
    2 комментария
  • PL/SQL Как связать переменную курсора с переменной таблицы?

    Можно загрузить в указанную переменную всю выборку из табличного курсора или её часть, и уже потом использовать.
    Ответ написан
    Комментировать
  • Чего вам не хватает в вашем смартфоне?

    Тщательный поиск приложений, решающих нижеизложенные задачи не проводил, но поверхностный не дал ничего подходящего.
    1. Клавиатуру по типу MessagEase, но чтобы можно было набирать текст, не отрывая пальца от экрана и не глядя на клавиатуру. Очень хочется писать вслепую, даже если требуется длительное обучение.
    2. Простой блокнот с возможностью иерархического тэгирования (или просто иерархия категорий произвольной глубины (например уровни: проект, задача, заметка))
    3. Для слепых: приложение вслух называет превалирующий цвет, который видит камера.
    Вообще, адаптация или создание спец. вариантов приложений и игр для слабовидящих - это слабо освоенная ниша.

    Игры/развлечения
    1. Игра-симулятор спешащего куда-то человека, которому нужно пробираться через толкучку к цели (уходящий поезд итп). Видел одну такую игрушку, но слабую. Тут много чего можно было бы напридумывать.
    2. С помощью эффекта доплера определяем скорость проносящихся мимо поездов и автомобилей
    Ответ написан
    Комментировать