Свежие публикации

Здесь собраны все публикуемые пикабушниками посты без отбора. Самые интересные попадут в Горячее.

05 Июля 2023

У него ещё и тайна была

У него ещё и тайна была

Мой кот

Мой кот Кот, Ошейник, Погладь кота, Домашние животные, Мобильная фотография

У моего кота новый ошейник

Показать полностью 1

Тайна уничтожения генерал-майора Георга фон Брауна

Тайна уничтожения генерал-майора Георга фон Брауна Техника-молодёжи, Минеры, Радиоуправление, Великая Отечественная война, Длиннопост

Начальник гарнизона оккупированного Харькова, командир 68-й немецкой пехотной дивизии генерал-майор Георг фон Браун издал приказ:

«Каждый житель, который знает места, где заложены мины, бомбы замедленного действия, подрывные снаряды, или же подозревает о заминировании каких-то объектов, обязан немедленно сообщить об этом. За правильные сведения будет выдаваться денежное вознаграждение. С другой стороны, каждый, кто скроет известные ему сведения о заминированных участках и не сообщит об этом, будет предан смертной казни...»

Одна продажная и угодливая душонка обрадовалась такому приказу. Некий хапуга, еще перед войной проворовавшийся за прилавком и случайно избежавший заслуженной кары, уже ждал момента, чтобы выслужиться перед оккупантами. До отхода наших войск он то и дело вертелся около красивого особняка в центре города. Расчет был прост: здание непременно понадобится для какого-нибудь важного гитлеровца. Надо подглядеть, не поставят ли советские бойцы там мины, чтобы потом донести немецкой комендатуре.

Доносчика фашисты увели с собой, чтобы вести поиски по его подсказке. После долгого осмотра всех закоулков дома мину обнаружили в куче угля на полу котельной и извлекли. И тогда руководивший поисками капитан Карл Гейден помчался к начальнику гарнизона, чтобы порадовать его. Генералу нужен был особняк. Браун не рискнул сразу обосноваться в городе. Не проходило и дня, чтобы в каком-нибудь месте не взрывалась мина. Палач Проскурова и Винницы, зверствовавший теперь в Харькове, Браун решил не спешить и поселился на окраине, в небольшом доме без всяких удобств. Но оставаться там надолго тоже не входило в его планы. Он не сомневался в гитлеровской доктрине молниеносной войны и надеялся на близкую капитуляцию Красной Армии. Только что пришел приказ о присвоении ему еще более высокого звания — он стал генерал-лейтенантом, Браун уже видел себя хозяином четвертого по величине города России.

И вот капитан Карл Гейден докладывает ему, что отличный особняк в самом центре города наконец разминирован! Георг фон Браун облегченно вздохнул и распорядился перенести свои вещи в этот уютный дом, прятавшийся за оградой.

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

13 ноября 1941 года, незадолго до полуночи, лимузин Брауна въехал во двор особняка. Генерал вышел из машины и удалился в спальню.

Той же ночью на окраине Воронежа в здание радиостанции широкого вешания входили люди, которым предстояло через несколько часов похоронить палача под обломками приглянувшегося ему дома. Эти люди знали о мине в куче угля на полу котельной, больше того, они хотели, чтобы фашисты ее нашли. В конце концов, дело было не в ней. Ее поставили лишь для отвода глаз, и тайна ее расположения была совсем не той тайной, что определяла успех операции.

В котельной глубоко в земле лежала еще одна, куда более мощная мина. От нее не тянулись скрытые провода, она не походила на бомбу замедленного действия. То была «умная мина» — она отзывалась на понятное только ей «имя». Она могла распознать его, находясь в земле, за толстыми стеками, могла откликнуться даже тогда, когда радиопередатчик неслышно ронял это имя в эфир далеко-далеко, в другом городе, за сотни километров от нее. И она откликнулась со всей силой своего 350-килограммового заряда...

В 4 часа 20 минут 14 ноября среди ночной тишины раздался оглушительный взрыв. Столб густой пыли окутал все в радиусе более 100 метров, в воздух полетели куски камня, бетона. От особняка в центре Харькова осталась только часть крыльца с лестницей, по которой генерал фон Браун поднялся накануне в последний раз.

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

Взрывы, раздавшиеся ночью в нескольких районах и притом почти одновременно, вселили в гитлеровцев ужас. Продолжались взрывы и в последующие дни, причем не только в городе, но и на аэродромах, важных в военном отношении коммуникациях. Срабатывали мины замедленного действия, мины, реагирующие на сотрясение, неизвлекаемые мины. Перечень найденных гибельных «сюрпризов» был совсем скудным, да и то большую часть из них вражеские минеры не смогли обезвредить — пришлось взрывать самим, разрушая участки железнодорожных путей и автомобильных дорог.

Скрытых под землей радиофугасов в городе уже не осталось, они все сработали по сигналам из Воронежа в ночь с 13 на 14 ноября. Но тайна оставалась тайной, и никто из гитлеровских вояк точно не знал, будут ли еще взрывы, где и в какое время. Каждый оккупант задавал себе вопрос: «Кого еще ждет смерть под обломками зданий и на дорогах?» Минеров, которые обшаривали подвалы дома Брауна и не смогли найти глубоко заложенную взрывчатку, офицеры СД в бессильной злобе расстреляли.

Сохранился красноречивый документ, из которого видно, как скверно себя чувствовали фашисты в Харькове. Это запись в дневнике немецкого офицера Георга Ф. Запись сделана 20 ноября 1941 года. Вот она:

«Еще горят дома. Большой, опустевший город неспокоен. Мы едем на автомобиле. Внезапно слышим грохот сильного взрыва. К месту взрыва помчалась масса велосипедов, и мы поехали туда. Место взрыва сцеплено. Вновь взорвалась мина или адская машина, которая должна была взорваться через определенный промежуток времени.

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

Мины взрывались повсюду. Но самое ужасное — минированные дороги и аэродромы. На аэродромах в день взрывалось до 3—5 мин, и никто не знал, где взорвутся следующие. Однажды взорвалась мина неслыханной мощности в ангаре, где велись монтажные работы, были убиты ценные специалисты. Этим ангаром уже нельзя пользоваться. Взорвались мины на краю аэродрома, были раненые среди летчиков и попорчены самолеты.

В городе и его окрестностях погибло много автомашин и несколько поездов, наскочивших на мины. Убиты сотни солдат. Но взрывы не прекращаются, обнаруживать мины с каждым днем все труднее. По показаниям пленных, часовой механизм многих образцов мин подействует лишь через четыре месяца.

Прошел только один месяц: в течение остающихся трех мы должны будем терять еще много машин и поездов. Уже сейчас потери из-за мин превосходят все потери, непосредственно связанные с завоеванием города. Наше первое столкновение с планомерным минированием стоило нам очень дорого...»

Немецкий офицер, сделавший эту запись, оказался прав: минирование было планомерным. Теперь известны имена советских воинов, которые сумели провести столь масштабную и дерзкую операцию, предусмотренную Ставкой Верховного Главнокомандующего.

Начальником оперативно-инженерной группы был полковник И. Старинов, ныне преподаватель одного из учебных заведений, кандидат технических наук. Военинженер 2-го ранга В. Ястребов возглавлял подразделение, установившее радиоуправляемые мины (отважный минер погиб в 1943 году при испытании нового боеприпаса). На железных дорогах действовали бригады под командованием полковников П. Кабанова, В. Павлова и С. Степанова. Батальон старшего лейтенанта И. Кливицкого минировал автомобильные дороги и аэродромы. При въезде в Харьков со стороны Белгорода группе смельчаков удалось в самый последний момент установить «гостинцы» для подрыва вражеских танков.

В ход было пущено около 25 тонн взрывчатки. Но чудо-мин, откликавшихся на закодированные радиосигналы, у харьковской оперативно-инженерной группы было немного. Поэтому пошли на хитрость — решили разыграть спектакль, изображающий минирование всех лучших домов города.

«Пикап» с минерами в зеленых полупальто, не скрываясь, днем останавливался то на одной, то на другой улице. Бойцы выносили из машины увесистые ящики и исчезали в подъезде. Затем так же демонстративно выходили из дома и ехали дальше.

Спектакль удался. Впоследствии выяснилось, что квартирмейстеры в поисках резиденции для генерала побывали именно в этих домах, но жители всюду говорили о «пикапе» с минерами. Тут-то капитан Гейден и доложил фон Брауну, что особняк в центре «разминирован».

О том, как удалось усыпить бдительность врага, рассказывает И. Старинов:

— Очистив от угля часть подвала возле внутренней капитальной стены, саперы вскрыли пол и вырыли колодец глубиной около двух метров. Извлеченную землю ссыпали в мешки, ставя на каждом порядковый номер, чтобы при засыпке сохранить то же чередование слоев грунта. Это было важно на случай, если враги начнут раскопки. Под фундаментом внутренней стены сделали глубокую нишу для приемника радиосигналов. Поверх чудо-мины, слегка засыпанной землей, поставили две неизвлекаемые мины. Колодец засыпали, набросали снова и кучу угля, укрыв им еще одну мину, которую противник должен был найти. Выглядела она вполне исправно, хотя мы и снабдили ее различными хитроумными устройствами, исключавшими возможность ее взрыва. Конечно, пришлось пожертвовать частью драгоценной для нас взрывчатки, но зато наш замысел привел к успеху: палача Брауна вместе с офицерами и охраной мы уничтожили.

Заряды, подрываемые радиосигналами на расстоянии, наши войска применили не только в Харькове. 22 октября 1941 года под обломками здания на улице Энгельса в Одессе нашли свою смерть около 200 старших офицеров вермахта, собравшихся на важное совещание. Под Москвой, во время движения немецких войск по мосту через реку Истру, взорвались два заряда, весом по 600 килограммов каждый. Мост взлетел на воздух, и в самый ответственный момент наступательной операции сообщение между частями фашистов нарушилось. Рвались радиофугасы в районе Туапсе, у Ржева, под Ростовом и Сталинградом, на Курской дуге.

Один из первых шифрованных радиоприказов полетел к чудо-минам 11 июля 1941 года под Ленинградом. Между начальником инженерного управления фронта Б. Бычевским и командиром роты особого назначения В. Яковлевым состоялся короткий разговор:

— Вот тут, в Стругах Красных, летчики видели скопление вражеских танков и автомашин. Где наши фугасы?

— На дороге — три по четверти тонны. Взрыватели «Беми».

— Да, кстати, а почему «Беми»?

— «Беми» — беспроволочные мины, кажется...

— Я слышал другое. Ну это сейчас неважно. Бей, Володя!

Во время войны фашистские главари не раз выступали с угрозами изготовить и пустить в ход некие виды «секретного оружия». Подразумевались ли в хвастливых заявлениях гитлеровских бонз радиомины? Надо принять во внимание, что осенью 1942 года немецким саперам все же удалось найти одну из наших чудо-мин. По всей вероятности, в военных лабораториях рейха предпринимались попытки скопировать советский образец или изготовить подобный. Сделать это оказалось, видимо, не так-то просто.

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

Ответить должны архивы. Кому, как не историкам нашей оборонной техники, оживить для нас пожелтевшие от времени документы, в которых говорится о таинственных «Беми»...

Вадим Орлов, «Тайны веков» (Антология таинственных случаев, Кн.-1), Журнал «Техника-Молодёжи», 1977г.

Показать полностью

Фигурка Джокера за 125 000 рублей

Фигурка Джокера за 125 000 рублей AliExpress, Фигурки, Скульптура, Джокер, Бэтмен, Темный рыцарь, Хобби, Коллекционирование, Коллекционные фигурки, Хит Леджер, Фильмы, Длиннопост
Фигурка Джокера за 125 000 рублей AliExpress, Фигурки, Скульптура, Джокер, Бэтмен, Темный рыцарь, Хобби, Коллекционирование, Коллекционные фигурки, Хит Леджер, Фильмы, Длиннопост
Фигурка Джокера за 125 000 рублей AliExpress, Фигурки, Скульптура, Джокер, Бэтмен, Темный рыцарь, Хобби, Коллекционирование, Коллекционные фигурки, Хит Леджер, Фильмы, Длиннопост
Фигурка Джокера за 125 000 рублей AliExpress, Фигурки, Скульптура, Джокер, Бэтмен, Темный рыцарь, Хобби, Коллекционирование, Коллекционные фигурки, Хит Леджер, Фильмы, Длиннопост

Статуя-фигурка Джокера (Joker) из кинофильма про Бэтмена 'Темный Рыцарь'. Выполнен в масштабе 1/3 с высокой детализацией. Ссылка на источник.

Осторожно, спойлеры!
Статуя сделана из сцены, где Джокер сидит в тюремной камере.

Показать полностью 4

Копирайтер

Ровно в девять работники небольшой фирмы собрались в кабинете директора. Ежедневная планерка проходила для «галочки», после чего все гоняли чаи, и только некоторые умудрялись работать.

- Нам нужен копирайтер, - с ходу заявила бухгалтер Таисия Петровна, вернувшаяся с курсов повышения квалификации.

- Зачем? – приподнял очки директор ООО «Смысл жизни».

- Как же, - пошла в атаку бухгалтер. – Вы финансовые отчеты видели? Скоро потеряем не только смысл, но и ООО.

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

- Зря, - не сдавалась бухгалтер. – В мире денег важна информация. Даже в Евангелие сказано «В начале было Слово» Копирайтер априори уровня Бог. Быстро нам бизнес на рельсы поставит.

- Во-первых, я атеистка, - возмутилась менеджер по кадрам Анна Витальевна. – Во-вторых, должности такой не предусмотрено.

- Аутсорсинг, - сыпала аргументами Таисия Петровна.

Директор сглотнул. Планерка шла не по плану, да и чаю уж больно хотелось.

- Это двоих брать придется? – замахал он руками.

- Колхоз «Счастливое детство», - встала бухгалтер в позу фарфоровой сахарницы. - Объясняю на пальцах. Копирайтер расскажет о нас покупателям. Раскидает продажные тексты. Мотивацию покупательскую подтянет. Надо будет и вирусным не побрезгует. Картинок красивых наделает и.

- Так это рекламщик, - оживился завхоз, словно выиграл в «Крокодила». – У меня зять в агентстве работает, плакаты на улицах клеит.

- Мимо, - скрестила руки бухгалтер. – Создаст лендинг на Тильде.

- Программист, - вошел в азарт завхоз.

- Мимо. Страницы в соцсетях заведет. Зальет туда разных статеек. Клиента подманивать будет, на живца брать, так сказать, - перешла на доступный язык бухгалтер.

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

- Я не согласен, - вскочил снабженец Василич. – У меня почерк плохой.

- От руки и не надо, - не унималась Таисия Петровна. – Василич не подойдет. Он скрипты писать не умеет.

- Не умею, - поддакнул Василич.

- Жили мы как-то без ваших скриптов, - возмутился директор и подумал «Надо было Татьяну из планового отправлять. Она бы воду здесь не мутила. На лишние траты не подбивала. Чему их там учат?».

- В том то и дело, что  «как-то». Продажник наш ни мекнуть, ни бекнуть  покупателю не может. Телефон в руки взять боится и от «здравствуйте» в обмороки падает. По скрипту бы шпарил как миленький. Там вам и «Доброе утро», и как товары предлагать описано, и как разговор завершить рассказано.

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

- Зарплаты не будет, еще и спляшешь. У тебя, кажется, ипотека имеется. Да что я вам на словах. У меня презентация есть.

- Чего? – покраснела вахтер Клавдия Ивановна. – Срам-то какой.

- Я знала, что маркетолог нам точно не светит. Сама провела анализ. Определила место на рынке, - достала бухгалтер из пакета проектор и ноутбук.

- Докатились, - запричитала технолог. – Натурой зарплату выдавать будете? Я на рынке стоять не согласна.

Проектор зажужжал и по стене побежали разноцветные графики.

- Обратите внимание на доходы у конкурентов? – водила Таисия Петровна лазерной указкой по цифрам в таблицах.

- Сравнила, - рассмеялся директор. – То область.

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

- Я не буду, - отозвался водитель.

- Я возьмусь, - подняла руку стажерка Лидия.

- Ты? – рассмеялась Анна Витальевна. – Я твое заявление вместо анекдота рассказываю. Весь город над ошибками ржет. Три в одном слове.

- Грамотности мало. Ключи от SOE надо подобрать. Тургеневым пользоваться. ЦА нашу кто-нибудь знает, с разбивкой по кластерам? Семантическим ядром запасся?

- Слово какое-то неприличное. – заерзал Василич.

- Хорошо, - согласился директор, поглядывая то на чайник, то на таблицы.

Прибыли сильно хотелось и яхту с автомобилем. Мечты унесли его на солнечный берег под высокие пальмы.

- Объявление писать? - гаркнула Анна Витальевна так, что с пальмы упали бананы.

- Пиши, и давайте уже за работу - кивнул ей директор, возвращаясь в мечты.

До обеда в офисе было тихо, но после опять начался бедлам.

- Нет у нас копирайтеров. Я и на биржу звонила и у знакомых спрашивала. Может и к лучшему. Это ему стол подавай, компьютер запросит, - теребила в руках карандаш Анна Витальевна.

- Аутсорсинг и фриланс рассматривала? – строго спросила бухгалтер.

- Нет, - потупила взгляд Анна Витальевна.

- То-то.

К вечеру директор вел собеседование по скайпу. Дина, девушка лет тридцать показывала свое портфолио.

- И это берем, - кивал ей директор. Уж больно хотелось на море.

Показать полностью

Вспомнить всё и собрать

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

Вспомнить всё и собрать LEGO, Конструктор, Дача, Длиннопост
Вспомнить всё и собрать LEGO, Конструктор, Дача, Длиннопост

Началась операция "вспомнить все"))) общими усилиями вспомнили, что там должно было быть три набора, общими усилиями нашли их в интернете

Вспомнить всё и собрать LEGO, Конструктор, Дача, Длиннопост
Вспомнить всё и собрать LEGO, Конструктор, Дача, Длиннопост
Вспомнить всё и собрать LEGO, Конструктор, Дача, Длиннопост

благо в интернете нашлись все инструкции, благодаря чему все и было собрано)))

Вспомнить всё и собрать LEGO, Конструктор, Дача, Длиннопост
Вспомнить всё и собрать LEGO, Конструктор, Дача, Длиннопост
Вспомнить всё и собрать LEGO, Конструктор, Дача, Длиннопост
Показать полностью 8

Опросник...

Опросник... Юмор, Картинка с текстом, Из сети, Повтор, Зашакалено

https://t.me/stories_secrets_facts/343

Показать полностью 1

Проверяем работу ученика курса программирования в PL/SQL (ORACLE)

Проверяем работу ученика курса программирования в PL/SQL (ORACLE) Обучение, Программист, Программирование, Длиннопост

Сегодня предлагаю проверить работу ученика нашего курса Программирования в PL/SQL (ORACLE) вместе. Проверим одну из самостоятельных работ, выявим потенциальные ошибки и посмотрим, что можно оптимизировать. Приглашаю побыть куратором курса 🙂

Разумеется, предварительно я получил разрешение ученика на разбор решения таким способом.

Итак, в конце одного из уроков, на котором мы разбирали циклы, я предложил к самостоятельному решению разработать базовый функционал выдачи кредита с открытием счета клиенту и формированием графика платежей. Зачисление средств по кредиту должно производиться раз в месяц в одно и то же число (всем известно), но это число должно быть рабочим днём. То есть если в некотором месяце дата платежа по кредиту выпадает на выходной или праздничный день, то нужно её перенести на ближайший следующий рабочий день. Я разбил "техническое задание" на подзадачи:

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

2. Вторым пунктом необходимо было создать функцию, проверяющую подаваемую ей дату на вход. В случае, если подаваемая на вход дата относится к рабочим дням, функция должна будет эту же дату и вернуть, если данная на вход дата является выходным или праздничным днём, то функция должна автоматически выдать ближайшую следующую рабочую дату. Эту функцию мы будем использовать при определении дат графика платежей. Функция будет проверять не только день недели расчётной даты, но и относится ли она ко дням исключениям.

3. Финальная часть самостоятельной задачи - создание хранимой процедуры или функции на открытие кредита с расчётом дат графика платежей.

На всех уроках курса Программирования в PL/SQL (ORACLE) мы много программируем и (самое главное!) учимся разрабатывать алгоритмы и правильно проектировать базу данных. Важно быть разработчиком, а не только программистом!

Проверяем работу ученика курса программирования в PL/SQL (ORACLE) Обучение, Программист, Программирование, Длиннопост

Пример окна "Производственного календаря", таблица, в которой пользователи (бухгалтера, аналитики, менеджеры, то есть не программисты) указывают даты-исключения. Выбранные даты сохраняются в специальную таблицу. Скриншот из нашей программы Media Planner.

Начнём с первого пункта: необходимо в базе данных создать таблицу ведения дат-исключений.

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

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

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

Проверяем работу ученика курса программирования в PL/SQL (ORACLE) Обучение, Программист, Программирование, Длиннопост

Создание таблицы для хранения дат-исключений.

Немного бы обсудил название таблицы 😉, но в остальном все отлично 👍! Тут есть единственный столбец для хранения дат, а нам только он один и нужен. На таблице есть первичный ключ по этому столбцу для быстрой проверки наличия даты в этой таблице. Все отлично!

Следующим шагом ученик создал вспомогательную хранимую процедуру для массового добавления дней в таблицу дат-исключений (теперь мы эту таблицу с днями-исключениями можем называть по имени - DATES_OF_YEAR). Создание процедуры для массового добавления дат-исключений не было в поставленной задаче, но всегда, когда ученик более широко продумывает задание, всегда отрадно! Итак, ниже созданная процедура для массового добавления дат-исключений в таблицу:

Проверяем работу ученика курса программирования в PL/SQL (ORACLE) Обучение, Программист, Программирование, Длиннопост

Предполагается на вход процедуре давать начальную и конечную даты, дни в диапазоне которых должны быть занесены в таблицу.

Пример использования процедуры массового добавления дат-исключений:

Проверяем работу ученика курса программирования в PL/SQL (ORACLE) Обучение, Программист, Программирование, Длиннопост

Процедурой можно воспользоваться и разом вставить новогодние праздники 🙂

Разберём процедуру массовой вставки дней-исключений. Процедура имеет два входных параметра с типом DATE:

Проверяем работу ученика курса программирования в PL/SQL (ORACLE) Обучение, Программист, Программирование, Длиннопост

Затем после слова IS, но до начала тела процедуры (до слова BEGIN) определены две переменные:

Проверяем работу ученика курса программирования в PL/SQL (ORACLE) Обучение, Программист, Программирование, Длиннопост

dt с типом DATE (этой переменной сразу назначается такое же значение, которое даётся процедуре на вход в первом параметре, обозначающем начальную дату диапазона и MYERROR - переменная обозначающая ошибку. Переменные-ошибки можно вызывать если нужно экстренно прервать выполнение хранимой процедуры когда что-то идёт не по плану.

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

Границы (тело) процедуры - это то, что написано в блоке между BEGIN и END. Напомню, что любой такой программный блок (то что между BEGIN и END) может в себе иметь "кармашек", куда ловить ошибки, если они будут. Для этого нужно написать ещё одно слово до END - это слово EXCEPTION. И тогда, все что до EXCEPTION - это штатное выполнение программного блока, в после EXCEPTION - это место, что нужно выполнять, если в основном месте что-т пошло не по плану или даже нарочно сгенерирована ошибка (с помощью переменной-ошибки).

Пример программного блока с "карманом", куда переводить выполнение программы, если в основном блоке возникла ошибка:

Проверяем работу ученика курса программирования в PL/SQL (ORACLE) Обучение, Программист, Программирование, Длиннопост

Внутри основного блока BEGIN..END процедуры ученик создал ещё один блок BEGIN..END, хотя можно было обойтись без него. И вот в нём создан под-блок для EXCEPTION.

Здесь можно оптимизировать: убрать лишний блок BEGIN..END, а EXCEPTION внутреннего блока перенести во внешний. Операцию COMMIT (если она нужна) расположить в самом конце основного блока (прямо до начала блока для обработки непредвиденных ситуаций). Моя корректировка "хранимки" будет ниже. Продолжим разбор:

Сразу в начале кода написано условие, что если начальная или конечная дата подаваемого на вход интервала не указаны, то генерировать исключительную ситуацию MYERROR. Для этого и была заранее объявлена переменная типа ошибка. Название этой исключительной ситуации, конечно, хорошо было бы придумать немного более "говорящим", например ERR_NO_DATE, ERROR_WRONG_DATE или ERROR_EMPTY_DATE. При возникновении исключительной ситуации выполнение сразу передаётся в под-блок EXCEPTION если он есть. Тут он есть. И в этом блоке ученик проверяет, если выполнение было прервано по непредвиденной ситуации MYERROR, то есть тип ошибки наш специально заготовленный, то в этом случае "хранимка" выведет понятный пользователю текст: "даты не могут быть пустыми".

Основная часть хранимой процедуры - это цикл, добавляющий даты одну за другой в таблицу DATES_OF_YEAR:

Проверяем работу ученика курса программирования в PL/SQL (ORACLE) Обучение, Программист, Программирование, Длиннопост

Рекомендации выше относятся только к оптимизации кода, повышению его читабельности и его чистоте (отсутствие лишнего кода). Функциональных ошибок не нашли.

Итак, разработанную учеником "хранимку" можно немного упросить следующим образом. Заодно немного подправил отступы, переименовал входные параметры и переменные в процедуре, а также дал переменной-ошибке MYERROR имя ERR_EMPTY_DATE (с англ.: "Ошибка пустая дата"):

Проверяем работу ученика курса программирования в PL/SQL (ORACLE) Обучение, Программист, Программирование, Длиннопост

Напомню, что имена параметров функций и процедур лучше начинать с "p" или "p_" (от англ. слова parameter "параметр"), это позволит избежать путаниц и даже ошибок при их использовании внутри "хранимок" в командах. Об этом всём я рассказываю на уроках 😌

Если хочешь стать участником нашего курса по SQL или PL/SQL, то записаться можно на нашем сайте: https://prime-soft.biz/courses

Буду рад оценке статьи лайком, твоим комментариям или если поделишься статьёй с друзьями!

Продолжение здесь.

Показать полностью 9
Мои подписки
Подписывайтесь на интересные вам теги, сообщества, авторов, волны постов — и читайте свои любимые темы в этой ленте.
Чтобы добавить подписку, нужно авторизоваться.

Отличная работа, все прочитано! Выберите