powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Ищу ментора по pl\sql с высоким уровнем экспертизы
49 сообщений из 49, показаны все 2 страниц
Ищу ментора по pl\sql с высоким уровнем экспертизы
    #39984780
path_to
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Завалил тестовое задание на должность сеньора. Обратной связи не дали, просто сказали, что все не правильно. Нужно посмотреть задание и мои решения к нему, и дать внятное разъяснение, где я накосячил. Кто может помочь и обладает высоким уровнем экспертизы - пишите свой ценник в скайп live:.cid.cd8a65e72ed2739
...
Рейтинг: 0 / 0
Ищу ментора по pl\sql с высоким уровнем экспертизы
    #39984783
Фотография Relic Hunter
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
path_to,

тут выкладывай, поможем!
...
Рейтинг: 0 / 0
Ищу ментора по pl\sql с высоким уровнем экспертизы
    #39984784
Фотография PsyMisha
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
path_to,

Боюсь, что придется немного побыть КЭПом, и сказать очевидное - но ИМХО - сеньёр, на которого вы претендуете - и без форумов должен сам знать/понимать что у него по знаниям, что крепко и хорошо, что вообще экспертно, а что еще тянуть, чего развивать и где не хватает.
Может все-таки рановато и средний уровень, не?
...
Рейтинг: 0 / 0
Ищу ментора по pl\sql с высоким уровнем экспертизы
    #39984785
Андрей Юниор
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PsyMisha
Боюсь, что придется немного побыть КЭПом, и сказать очевидное - но ИМХО - сеньёр, на которого вы претендуете - и без форумов должен сам знать/понимать что у него по знаниям, что крепко и хорошо, что вообще экспертно, а что еще тянуть, чего развивать и где не хватает.
Может все-таки рановато и средний уровень, не?

Видя, какие люди работают сеньорами... Знаете, вообще не показатель)))

Я бы не стал тратить своё время на самобичевания лишь из-за того, что какая-то компания с низкой корпоративной культурой не удосужилась объяснить, что им не понравилось. Скорее всего приливы и отливы мочи к головному мозгу сыграли главную роль.
...
Рейтинг: 0 / 0
Ищу ментора по pl\sql с высоким уровнем экспертизы
    #39984787
Фотография Relic Hunter
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PsyMisha,

а может кому-то помог сделать работу.
...
Рейтинг: 0 / 0
Ищу ментора по pl\sql с высоким уровнем экспертизы
    #39984800
Фотография crutchmaster
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
path_to,

То есть тебе надо чтобы кто-то с высоты своего ЧСВ профессионализма объяснил, почему твой код - говно? Так ты попал куда надо! Тут найдётся много людей, которые сделают это бесплатно и с превеликим удовольствием. Тащи свой говнокод.
...
Рейтинг: 0 / 0
Ищу ментора по pl\sql с высоким уровнем экспертизы
    #39984833
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Может просто контора - гавно. И смысл тогда самокопанием заниматься?

Или я не знаю что надо так запороть чтобы вообще не дали обратки? Может нахамил кому в отделе кадров.
Или просто вёл себя дерзко? Или вообще не понял задание. Кстати тоже вариант.
...
Рейтинг: 0 / 0
Ищу ментора по pl\sql с высоким уровнем экспертизы
    #39984844
Фотография Vyatich
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton

Или я не знаю что надо так запороть чтобы вообще не дали обратки? Может нахамил кому в отделе кадров.
Или просто вёл себя дерзко? Или вообще не понял задание. Кстати тоже вариант.

Тогда здесь не ментор pl/sql нужен, а психоаналитик с высоким уровнем экспертизы.
...
Рейтинг: 0 / 0
Ищу ментора по pl\sql с высоким уровнем экспертизы
    #39984846
xerxf
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
может код идеален и просто в конторе какие то свои заморочки?
я в одну контору когда то тестовое писал - им реально человек был нужен, но ведущая была женщина.. с скажем так - сложным характером и откровенно сабботировала набор. В итоге в моём тестовом придрались к какой то ерунде. и то я об этом узнал только потому, что hr там была моя хорошая знакомая и она таки фидбек выбила. Не, я конечно готов признать, что у меня там была не ерунда, а реально ужас ужас.. но если эта контора в течение полутора лет не могла найти в нашем достаточно немаленьком городе ораклиста - это о чём то говорит.
А код сюда кидай - если там что то интересное - его и бесплатно с удоольствием посмотрят -прокомментируют
...
Рейтинг: 0 / 0
Ищу ментора по pl\sql с высоким уровнем экспертизы
    #39984885
path_to
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
PsyMishaМожет все-таки рановато и средний уровень, не?
Да, я понимаю что не дорос до сеньора, но они сами вышли на меня и я решил испытать свои знания. Но чтобы сделать работу над ошибками, надо понимать где я ошибся. К сожалению, в ближайшем окружении не с кем посоветоваться.

Relic Hunterа может кому-то помог сделать работу
Нет, это чисто тестовое задание. Видно что хотели посмотреть мой скилл при работе с коллекциями и транзакциями.

maytonМожет нахамил кому в отделе кадров.
Нет, я был весьма корректен.

1.
Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
declare
  cursor c1 is
    select distinct z.clnt_id,
                    z.subs_id,
                    sum(z.pay_sum) over(partition by z.subs_id) as all_pay_sum
      from (select t.clnt_id,
                   t.subs_id,
                   t.pay_sum,
                   t.pay_date,
                   t.del_date,
                   row_number() over(partition by t.clnt_id, t.subs_id order by t.pay_date desc) as rnk
              from test_pay t
             where t.del_date is null
             order by t.clnt_id, t.subs_id, t.pay_date desc) z
     where z.rnk < 11;
  type data_set_tp is table of c1%rowtype;
  l_data_set data_set_tp;
  --v_lmt pls_integer := 9999;--Лимит кратный цифре 3
begin
  open c1;
  loop
    fetch c1 bulk collect
      into l_data_set /*limit v_lmt*/
    ; --Здесь можно было бы ограничить кол-во через LIMIT чтобы поберечь память в PGA
    exit when l_data_set.count = 0;
    --Ищем индексы массива не кратные трем и удаляем их из коллекции
    for x in l_data_set.first .. l_data_set.count loop
      if mod(x, 3) != 0 then
        l_data_set.delete(x);
      end if;
    end loop;
    --Обрабатываем оставшиеся после удаления строки в коллекции
    forall idx in indices of l_data_set
      insert into test_data
        (clnt_id, subs_id, all_pay_sum)
      values
        (l_data_set(idx).clnt_id,
         l_data_set(idx).subs_id,
         l_data_set(idx).all_pay_sum);
  end loop;
  close c1;
  commit; 
end;



2.
Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
declare
  l_cnt number := 0;
begin
  for i in 1 .. 23 loop
    begin
      savepoint iteraction;
      update test t set t.n = t.n - 1 where t.n = i;
      insert into test_log (n) values (i);
    exception
      when others then
        rollback to savepoint iteraction;
    end;
    if mod(l_cnt, 5) = 0 then
      commit;
    end if;
  end loop;
end;
...
Рейтинг: 0 / 0
Ищу ментора по pl\sql с высоким уровнем экспертизы
    #39984886
monsenior
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
path_to
Завалил тестовое задание на должность сеньора. Обратной связи не дали, просто сказали, что все не правильно. Нужно посмотреть задание и мои решения к нему, и дать внятное разъяснение, где я накосячил. Кто может помочь и обладает высоким уровнем экспертизы - пишите свой ценник в скайп live:.cid.cd8a65e72ed2739


Обычно такое происходит, когда нужно устроить своего человека, а остальные собесы показать
что люди на рынке говно, а свой человек золотцо, который чуть ли не за копейки работать готов.
Причем тестовое дают по вопросам которые ты в работе используешь - чуть меньше чем никогда.
Пример из моей практики: напишите в каком порядке будут печататься WriteLine из конструкторов базового и
наследуемых классов в c#. Ньюанс - должность MSSQL разраб.
...
Рейтинг: 0 / 0
Ищу ментора по pl\sql с высоким уровнем экспертизы
    #39984889
monsenior
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
path_to
PsyMishaМожет все-таки рановато и средний уровень, не?

Да, я понимаю что не дорос до сеньора, но они сами вышли на меня и я решил испытать свои знания. Но чтобы сделать работу над ошибками, надо понимать где я ошибся. К сожалению, в ближайшем окружении не с кем посоветоваться.

Relic Hunterа может кому-то помог сделать работу
Нет, это чисто тестовое задание. Видно что хотели посмотреть мой скилл при работе с коллекциями и транзакциями.

maytonМожет нахамил кому в отделе кадров.
Нет, я был весьма корректен.

1.
Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
declare
  cursor c1 is
    select distinct z.clnt_id,
                    z.subs_id,
                    sum(z.pay_sum) over(partition by z.subs_id) as all_pay_sum
      from (select t.clnt_id,
                   t.subs_id,
                   t.pay_sum,
                   t.pay_date,
                   t.del_date,
                   row_number() over(partition by t.clnt_id, t.subs_id order by t.pay_date desc) as rnk
              from test_pay t
             where t.del_date is null
             order by t.clnt_id, t.subs_id, t.pay_date desc) z
     where z.rnk < 11;
  type data_set_tp is table of c1%rowtype;
  l_data_set data_set_tp;
  --v_lmt pls_integer := 9999;--Лимит кратный цифре 3
begin
  open c1;
  loop
    fetch c1 bulk collect
      into l_data_set /*limit v_lmt*/
    ; --Здесь можно было бы ограничить кол-во через LIMIT чтобы поберечь память в PGA
    exit when l_data_set.count = 0;
    --Ищем индексы массива не кратные трем и удаляем их из коллекции
    for x in l_data_set.first .. l_data_set.count loop
      if mod(x, 3) != 0 then
        l_data_set.delete(x);
      end if;
    end loop;
    --Обрабатываем оставшиеся после удаления строки в коллекции
    forall idx in indices of l_data_set
      insert into test_data
        (clnt_id, subs_id, all_pay_sum)
      values
        (l_data_set(idx).clnt_id,
         l_data_set(idx).subs_id,
         l_data_set(idx).all_pay_sum);
  end loop;
  close c1;
  commit; 
end;



2.
Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
declare
  l_cnt number := 0;
begin
  for i in 1 .. 23 loop
    begin
      savepoint iteraction;
      update test t set t.n = t.n - 1 where t.n = i;
      insert into test_log (n) values (i);
    exception
      when others then
        rollback to savepoint iteraction;
    end;
    if mod(l_cnt, 5) = 0 then
      commit;
    end if;
  end loop;
end;



к кускам кода нужно краткое описание, что код должен делать.
А то может задание было - крестиком вышивать.
...
Рейтинг: 0 / 0
Ищу ментора по pl\sql с высоким уровнем экспертизы
    #39984892
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Наверное можно было решить задачу без коллекции. В чем ее смысл тут? Проредить выборку оставив кадую третью строку?

Наверное это можно было сделать по другому. А с коллекцией надо еще доказать что ты не переполнишь память
пользовательского процесса. Наверное от тебя и ждали такого обоснования.
...
Рейтинг: 0 / 0
Ищу ментора по pl\sql с высоким уровнем экспертизы
    #39984893
xerxf
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
monsenior,

не всегда такое бывает ради своего человека. В моём случае ведущей просто нравилось быть великой, ужасной и незаменимой. В результате она героически работала по 12 часов, картинно страдала от этого, они профукали все возможные сроки, но за больше чем полтора года так никого и не взяли. Причём когда она ушла в другое место - хороший кандидат нашёлся моментально. вроде бы даже кто то из тех, кому она отказала ранее с очень очень негативным отзывом
...
Рейтинг: 0 / 0
Ищу ментора по pl\sql с высоким уровнем экспертизы
    #39984898
path_to
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ребята, в сообщении где мой говнокод, есть приложенный вордовский файл с заданиями
...
Рейтинг: 0 / 0
Ищу ментора по pl\sql с высоким уровнем экспертизы
    #39984899
xerxf
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
path_to,

что то мой древний ворд не открывает пояснения. Коротенько - в чём смысл задания?
...
Рейтинг: 0 / 0
Ищу ментора по pl\sql с высоким уровнем экспертизы
    #39984900
path_to
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
xerxf,

Содержимое файла

Пояснение по заданиям
Ускорение изменения данных, уменьшение числа проходов, количества переменных и прочая оптимизация кода – приветствуются, а для специалистов высокого уровня настоятельно рекомендуется. Это поможет в полной мере понять Ваш уровень, как разработчика и на собеседовании уже этот вопрос не поднимать.
Задание №1
Есть таблица test_pay :
Название колонки Описание колонки
clnt_id ID клиента
subs_id ID абонента
pay_sum Сумма платежа
pay_date Дата платежа
del_date Дата удаления платежа
Если платеж не удален, то не заполняется

и таблица test_data :
Название колонки Описание колонки
n ID (порядковый номер)
clnt_id ID клиента
subs_id ID абонента
all_pay_sum Сумма платежей

На клиенте может быть много абонентов.
Один и тот же абонент не может быть на разных клиентах.
У абонента может быть много платежей.
Нужно написать запрос, который выбирает сумму первых 10 не удалённых платежей на каждом из абонентов. Данные из запроса должны помещаться в коллекцию, содержащую поля: clnt_id, subs_id, all_pay_sum.
По завершению выборки данных в коллекцию, необходимо вставить каждую третью запись из этой коллекции в таблицу test_data. Допускается использование вспомогательных объектов и конструкций для решения задачи.

Задание №2
Есть две таблицы test и test_log :
Название колонки Описание колонки
n Порядковый номер (Primary Key)

Изначально в таблице test присутствует 23 записи с значением n от 1 до 23.
В таблице test_log присутствует запись со значением n = 8.

Необходимо написать цикл от 1 до 23 (номер шага цикла обозначим i), который:
1. Обновляет данные в таблице test для каждого n = i, устанавливая n = n - 1;
2. Вставляет в таблицу test_log запись с n = i.

При этом должны выполняться следующие условия:
1. Каждые 5 шагов должна выполняться фиксация изменений в таблицах.
2. Изменения по тем шагам, которые имели ошибки, НЕ должны быть зафиксированы в таблицах.
...
Рейтинг: 0 / 0
Ищу ментора по pl\sql с высоким уровнем экспертизы
    #39984903
path_to
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
xerxf,

более удобочитаемый вид (см. вложение)
...
Рейтинг: 0 / 0
Ищу ментора по pl\sql с высоким уровнем экспертизы
    #39984905
xerxf
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
path_to,

а зачем в первом задание вообще коллекции и циклы? нельзя там сразу в запросе выбрать каждую третью запись и insert сделать не в цикле, а сразу insert into .... select .... ?
...
Рейтинг: 0 / 0
Ищу ментора по pl\sql с высоким уровнем экспертизы
    #39984907
path_to
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
xerxf,

я бы тоже запросом это сделал, но такое условие
из условия задачиНужно написать запрос, который выбирает сумму первых 10 не удалённых платежей на каждом из абонентов. Данные из запроса должны помещаться в коллекцию , содержащую поля: clnt_id, subs_id, all_pay_sum.
...
Рейтинг: 0 / 0
Ищу ментора по pl\sql с высоким уровнем экспертизы
    #39984908
Melkomyagkii_newbi
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
lcnt во втором куске не меняешь - это дефект. В первом сортировка по пейдей деск - это же получится 10 последних платежей, не? Тогда тоже дефект.
...
Рейтинг: 0 / 0
Ищу ментора по pl\sql с высоким уровнем экспертизы
    #39984909
Туман войны
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Мне кажется, что оба запроса, можно сделать без курсоров.
...
Рейтинг: 0 / 0
Ищу ментора по pl\sql с высоким уровнем экспертизы
    #39984910
path_to
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Melkomyagkii_newbi
lcnt во втором куске не меняешь - это дефект.


точно. я перед отправкой как раз этот кусок менял. хотел заменить l_cnt на i. Это точно косяк
...
Рейтинг: 0 / 0
Ищу ментора по pl\sql с высоким уровнем экспертизы
    #39984913
xerxf
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
и во втором задание - 23 на 5 не делится. что будет с последними записями?
...
Рейтинг: 0 / 0
Ищу ментора по pl\sql с высоким уровнем экспертизы
    #39984914
path_to
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
xerxf,
xerxfи во втором задание - 23 на 5 не делится. что будет с последними записями?
да. верно. здесь коммита не будет. но это вроде попадает под условие Каждые 5 шагов должна выполняться фиксация изменений в таблицах.
т.е. следующего 5 шага не наступает
...
Рейтинг: 0 / 0
Ищу ментора по pl\sql с высоким уровнем экспертизы
    #39984916
xerxf
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
path_to,

в общем - задание как минимум странное. Просят по возможности оптимизировать и при этом ставят условие об использование неоптимальных в данном случае коллекций
...
Рейтинг: 0 / 0
Ищу ментора по pl\sql с высоким уровнем экспертизы
    #39984919
path_to
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
xerxf,

В данном случае я использовал forall для оптимизации, вместо обычного прохода по циклу с инсертом в каждой итерации
...
Рейтинг: 0 / 0
Ищу ментора по pl\sql с высоким уровнем экспертизы
    #39984921
path_to
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Melkomyagkii_newbi
В первом сортировка по пейдей деск - это же получится 10 последних платежей, не? Тогда тоже дефект.


да, проверил сейчас.
Код: plsql
1.
order by t.clnt_id, t.subs_id, t.pay_date desc 

явно избыточная строка. На конечный результат консистентности данных не влияет, но доп нагрузку дает.
...
Рейтинг: 0 / 0
Ищу ментора по pl\sql с высоким уровнем экспертизы
    #39984923
Фотография crutchmaster
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
path_to
который выбирает сумму первых 10

path_to
необходимо вставить каждую третью запись

Тест на извращенца. Если у них там всё через n-ую запись и выборки последних m, то ну их в жопу с такой работой.
...
Рейтинг: 0 / 0
Ищу ментора по pl\sql с высоким уровнем экспертизы
    #39984924
Александр Спелицин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
По 2-й задаче
1. l_cnt всегда будет оставаться равным 0, и Ваш код будет коммитить после КАЖДОГО шага.
Нехватает
Код: plsql
1.
l_cnt := l_cnt + 1;


в начале тела цикла.
2. После выхода из цикла необходим commit, т.к. записи 21...23 не будут закоммичены (они не являются каждой 5-й)
...
Рейтинг: 0 / 0
Ищу ментора по pl\sql с высоким уровнем экспертизы
    #39984925
xerxf
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
crutchmaster
path_to
который выбирает сумму первых 10

path_to
необходимо вставить каждую третью запись

Тест на извращенца. Если у них там всё через n-ую запись и выборки последних m, то ну их в жопу с такой работой.


вот такие же мысли появились при чтение задания. да плюс ещё это непонятное требование обязательно использовать коллекции..
...
Рейтинг: 0 / 0
Ищу ментора по pl\sql с высоким уровнем экспертизы
    #39984927
path_to
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Александр Спелицин
По 2-й задаче
1. l_cnt всегда будет оставаться равным 0, и Ваш код будет коммитить после КАЖДОГО шага.
Нехватает
Код: plsql
1.
2.
3.
l_cnt := l_cnt + 1;

да, это косяк. тут надо вместо l_cnt ставить можно поставить i и уйти от l_cnt.


в начале тела цикла.
2. После выхода из цикла необходим commit, т.к. записи 21...23 не будут закоммичены (они не являются каждой 5-й)

Тут спорный момент. я когда писал код думал об этом. Если поставить в итоге коммит, то возникает противоречие условию. Я решил максимально придерживаться постановке задачи.
...
Рейтинг: 0 / 0
Ищу ментора по pl\sql с высоким уровнем экспертизы
    #39984928
path_to
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
path_to
Александр Спелицин
По 2-й задаче
1. l_cnt всегда будет оставаться равным 0, и Ваш код будет коммитить после КАЖДОГО шага.
Нехватает
Код: plsql
1.
l_cnt := l_cnt + 1;


в начале тела цикла.
2. После выхода из цикла необходим commit, т.к. записи 21...23 не будут закоммичены (они не являются каждой 5-й)

1. Да, это косяк. тут надо вместо l_cnt можно поставить i и уйти от l_cnt

2. Тут спорный момент. я когда писал код думал об этом. Если поставить в итоге коммит, то возникает противоречие условию. Я решил максимально придерживаться постановке задачи.
...
Рейтинг: 0 / 0
Ищу ментора по pl\sql с высоким уровнем экспертизы
    #39984929
Alex Le
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
path_to, любое тестовое задание должно быть сформулировано ясным образом и иметь некоторую практическую цель.
В первом задании неясно как искать платежи: дополнительно разбивая по клиентам или только по абонентам.
Во втором задании просто несовпадение преамбулы-пояснения и результат. Что с чем там связано и как? В таблице t могут быть совершенно случайные данные? И т.п.
Написанные курицей лапой задания выдают неуважение ко времени соискателя. Лучше избегать таких вакансий, особенно тех, где 1,5 часа разбираешь задания и 30 минут кодишь.

P.S. Насчёт финального commit во втором задании не волнуйтесь, на ревью оно всплывает даже у ведущих разработчиков.
...
Рейтинг: 0 / 0
Ищу ментора по pl\sql с высоким уровнем экспертизы
    #39984934
xerxf
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
path_to,

просто ради интереса - а контора разработческая? есть подозрение, что бизнес конторы никаким образом не связан с разработкой, IT отдел существует постольку поскольку и сидят в нём какие нибудь динозавры, которые сами мало что толком умеют
...
Рейтинг: 0 / 0
Ищу ментора по pl\sql с высоким уровнем экспертизы
    #39984944
Alex Le
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
path_to, а вы проверяли код на реальной базе с тестовыми данными?

Код: plsql
1.
2.
3.
4.
5.
6.
7.
forall idx in indices of l_data_set
      insert into test_data
        (clnt_id, subs_id, all_pay_sum)
      values
        (l_data_set(idx).clnt_id,
         l_data_set(idx).subs_id,
         l_data_set(idx).all_pay_sum);
...
Рейтинг: 0 / 0
Ищу ментора по pl\sql с высоким уровнем экспертизы
    #39984947
xerxf
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
кстати, как вариант

insert into test_data
(clnt_id, subs_id, all_pay_sum)
select * from table(l_data_set);

(если что - отошёл от оракла последнее время... так что если с синтаксисом что не так - заранее извиняюсь)
...
Рейтинг: 0 / 0
Ищу ментора по pl\sql с высоким уровнем экспертизы
    #39984950
Фотография кит северных морей
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
первое задание решается одним запросом. это основной момент. для перехода в pl/sql нужны веские аргументы, которых на первый взгляд не просматривается, и мало ли что написано в постановке. сеньор должен предлагать оптимальное решение, а не слепо кодировать постановку. ну и по-мелочи: лишний order by, группировка через аналитику + distinct, еще что-то было.

во втором задании, вероятно, действительно хотели увидеть понимание savepoint, но из вашего кода видно, что вы его даже не протестировали на каких-то сгенерированных данных (ошибка с l_cnt, которую вы сами признали).

path_to
Тут спорный момент. я когда писал код думал об этом. Если поставить в итоге коммит, то возникает противоречие условию. Я решил максимально придерживаться постановке задачи.

то же самое. дословно кодируют постановку мидлы. сеньор должен понимать, что он делает, и указывать на ошибки и неточности в постановке, если он видит таковые. отсутствие фиксации транзакции после вставки - это с высокой вероятностью ошибка в постановке, и на это следовало обратить внимание.

в общем, тестовое задание спорное, но завалили вас по делу. не обижайтесь.
...
Рейтинг: 0 / 0
Ищу ментора по pl\sql с высоким уровнем экспертизы
    #39984958
Alexey Tomin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
path_to,

Я 10 леж уже не пишу pl/sql код но вот что бросилось в глаза в первом куске кода:

1. В запросе нет сортировки в самом внешнем подзапросе. В результате результат ;) будет каждый раз разный, в общем случае. А вот внутри зачем-то order by есть.

2. rnk из поздапроса ограничивается в запросе снаружи, но не участвует в distinct. Что-то странное. Вообще запрос этот меня пугает своей странностью. Но это может потому, что задание я не читал :)

3. Удалять в коллекции элементы не нужно, можно просто в цикле записывать только каждый третий элемент.

4. Вообще если и нужно pl/sql то можно for сразу по курсору пройти. Но задание вроде против :)
...
Рейтинг: 0 / 0
Ищу ментора по pl\sql с высоким уровнем экспертизы
    #39984970
Никанор Кузьмич
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
кит северных морей
первое задание решается одним запросом. это основной момент. для перехода в pl/sql нужны веские аргументы, которых на первый взгляд не просматривается, и мало ли что написано в постановке. сеньор должен предлагать оптимальное решение, а не слепо кодировать постановку.
+1
xerxf
Просят по возможности оптимизировать и при этом ставят условие об использование неоптимальных в данном случае коллекций
Имхо, в случае противоречивых требований кандидат должен на это указать, а после этого он имеет право выбрать способ разрешения противоречий на свое усмотрение (с аргументацией). А у работодателя в этом случае сужается поле возможных придирок.

path_to
Задание №2
Есть две таблицы test и test_log :
Название колонки Описание колонки
n Порядковый номер (Primary Key)

Изначально в таблице test присутствует 23 записи с значением n от 1 до 23.
В таблице test_log присутствует запись со значением n = 8.

Необходимо написать цикл от 1 до 23 (номер шага цикла обозначим i), который:
1. Обновляет данные в таблице test для каждого n = i, устанавливая n = n - 1;
2. Вставляет в таблицу test_log запись с n = i.

При этом должны выполняться следующие условия:
1. Каждые 5 шагов должна выполняться фиксация изменений в таблицах.
2. Изменения по тем шагам, которые имели ошибки, НЕ должны быть зафиксированы в таблицах.
Я вижу задание так: есть DML операция на большой таблице, которая перелопачивает много строк. Надо выполнить операцию, успешно обработанные записи сохранить. Я бы предложил в качестве решения этой задачи не клепать самодельный велосипед, а использовать специально предназначенный для этого error logging clause.
...
Рейтинг: 0 / 0
Ищу ментора по pl\sql с высоким уровнем экспертизы
    #39984992
path_to
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Alex Le
path_to, а вы проверяли код на реальной базе с тестовыми данными?

Код: plsql
1.
2.
3.
4.
5.
6.
7.
forall idx in indices of l_data_set
      insert into test_data
        (clnt_id, subs_id, all_pay_sum)
      values
        (l_data_set(idx).clnt_id,
         l_data_set(idx).subs_id,
         l_data_set(idx).all_pay_sum);



да, а есть подозрения, что есть проблема?
...
Рейтинг: 0 / 0
Ищу ментора по pl\sql с высоким уровнем экспертизы
    #39985002
Alex Le
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
path_to, в версиях до 11 Oracle, если мне не изменяет память, не поддерживает обращения к отдельным полям записи в nested table.
...
Рейтинг: 0 / 0
Ищу ментора по pl\sql с высоким уровнем экспертизы
    #39985009
path_to
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Alexey Tomin
path_to,

Я 10 леж уже не пишу pl/sql код но вот что бросилось в глаза в первом куске кода:

1. В запросе нет сортировки в самом внешнем подзапросе. В результате результат ;) будет каждый раз разный, в общем случае. А вот внутри зачем-то order by есть.

2. rnk из поздапроса ограничивается в запросе снаружи, но не участвует в distinct. Что-то странное. Вообще запрос этот меня пугает своей странностью. Но это может потому, что задание я не читал :)

3. Удалять в коллекции элементы не нужно, можно просто в цикле записывать только каждый третий элемент.

4. Вообще если и нужно pl/sql то можно for сразу по курсору пройти. Но задание вроде против :)


1. Почему результат будет, разный? В верхнем запросе сумма считается в рамках окна абонента. и какая бы сортировка не была - он должен посчитать верно

2. Да, это тоже похоже косяк

3. Не выйдет. Forall это не for. в нем можно использовать только DML. Никакие логические операторы и сравнения не пройдут. Будет ошибка.

4. Верно. Задание против:)
...
Рейтинг: 0 / 0
Ищу ментора по pl\sql с высоким уровнем экспертизы
    #39985010
path_to
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
xerxf
path_to,

просто ради интереса - а контора разработческая? есть подозрение, что бизнес конторы никаким образом не связан с разработкой, IT отдел существует постольку поскольку и сидят в нём какие нибудь динозавры, которые сами мало что толком умеют


Организация крупная. Одна из крупнейших в российском секторе ИТ. Занимается разработкой своего ПО.
...
Рейтинг: 0 / 0
Ищу ментора по pl\sql с высоким уровнем экспертизы
    #39985013
path_to
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
кит северных морей
не обижайтесь.


Никаких проблем. Я всегда за конструктивную критику. Спасибо.
...
Рейтинг: 0 / 0
Ищу ментора по pl\sql с высоким уровнем экспертизы
    #39985044
eksql
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
path_to

Организация крупная. Одна из крупнейших в российском секторе ИТ. Занимается разработкой своего ПО.

Чем крупнее - тем больше корпоративного идиотизма.

Это задание максимум на продвинутого джуна. Оно простое в понимании, не требует глубоких знаний и в нем нет простора для творчества. Даже если вы сделали мелкие ошибки, всем плевать на них, никто этот код досконально смотреть не будет. Забудьте про это собеседование и не занимайтесь самоедством.
...
Рейтинг: 0 / 0
Ищу ментора по pl\sql с высоким уровнем экспертизы
    #39985064
xerxf
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
плюс много много за то, чтобы забыть это как страшный сон
...
Рейтинг: 0 / 0
Ищу ментора по pl\sql с высоким уровнем экспертизы
    #39985191
Фотография crutchmaster
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
xerxf
вот такие же мысли появились при чтение задания. да плюс ещё это непонятное требование обязательно использовать коллекции..

Я надеялся увидеть какие-нибудь вопросы по всяким оптимизациям, хинтам, индексам, партицированию, кэшированию, блокировкам, да прочему хайлоаду и всякой внутренней оракловой кухне. Пойдешь к таким и будешь весь день пивотить таблицы и разгребать глючные тормозящие по 50 сек запросы на 5к строчек с рекурсией и n-ми/следующими/предыдущими записями вместо того, чтобы работать.

Модератор: Тема перенесена из форума "Работа".
...
Рейтинг: 0 / 0
Ищу ментора по pl\sql с высоким уровнем экспертизы
    #39985429
Synoptic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Какие-то слишком простые задания для сеньора...
...
Рейтинг: 0 / 0
49 сообщений из 49, показаны все 2 страниц
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Ищу ментора по pl\sql с высоким уровнем экспертизы
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]